This commit was manufactured by cvs2svn to create tag 'R1_0_3'.
diff --git a/bundles/org.eclipse.jst.jsp.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.jsp.core/META-INF/MANIFEST.MF
index 04c2da2..975e202 100644
--- a/bundles/org.eclipse.jst.jsp.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.jsp.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.jsp.core; singleton:=true
-Bundle-Version: 1.0.100.qualifier
+Bundle-Version: 1.0.2.qualifier
 Bundle-Activator: org.eclipse.jst.jsp.core.internal.JSPCorePlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -26,9 +26,12 @@
  org.eclipse.jst.jsp.core.internal.provisional.contenttype,
  org.eclipse.jst.jsp.core.internal.provisional.text,
  org.eclipse.jst.jsp.core.internal.regions,
+ org.eclipse.jst.jsp.core.internal.taglib,
  org.eclipse.jst.jsp.core.internal.tasks,
  org.eclipse.jst.jsp.core.internal.text,
  org.eclipse.jst.jsp.core.internal.util,
+ org.eclipse.jst.jsp.core.internal.validation,
+ org.eclipse.jst.jsp.core.jspel,
  org.eclipse.jst.jsp.core.taglib
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.core.resources,
diff --git a/bundles/org.eclipse.jst.jsp.core/build.properties b/bundles/org.eclipse.jst.jsp.core/build.properties
index 9bcd78a..ae187ae 100644
--- a/bundles/org.eclipse.jst.jsp.core/build.properties
+++ b/bundles/org.eclipse.jst.jsp.core/build.properties
@@ -17,6 +17,6 @@
 bin.excludes = @dot/**,\
                temp.folder/**
 src.includes = component.xml,\
-               build.properties,\
-               DevTimeSupport/
+               DevTimeSupport/,\
+               schema/
 source.. = src/
diff --git a/bundles/org.eclipse.jst.jsp.core/plugin.properties b/bundles/org.eclipse.jst.jsp.core/plugin.properties
index b474eb2..9d662e3 100644
--- a/bundles/org.eclipse.jst.jsp.core/plugin.properties
+++ b/bundles/org.eclipse.jst.jsp.core/plugin.properties
@@ -18,3 +18,4 @@
 JSP_Syntax_Validator.name=JSP Syntax Validator
 EL_Syntax_Validator.name=EL Syntax Validator
 Structured_JSP_Document_Setup_participant.name=Structured JSP Document Setup Participant
+JSP_EL_Translator=JSP EL Translator
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/plugin.xml b/bundles/org.eclipse.jst.jsp.core/plugin.xml
index 95babbb..8684199 100644
--- a/bundles/org.eclipse.jst.jsp.core/plugin.xml
+++ b/bundles/org.eclipse.jst.jsp.core/plugin.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?eclipse version="3.0"?>
 <plugin>
-   <extension-point id="elTranslator" name="org.eclipse.jst.jsp.core.eltranslator" schema="schema/eltranslator.exsd"/>
+   <extension-point id="elTranslator" name="%JSP_EL_Translator" schema="schema/eltranslator.exsd"/>
 
 	<extension point="org.eclipse.wst.sse.core.modelHandler">
 		<modelHandler
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationExtension.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationExtension.java
index c8702e6..265259d 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationExtension.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationExtension.java
@@ -15,7 +15,6 @@
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
-import java.util.StringTokenizer;
 
 import org.eclipse.core.filebuffers.ITextFileBuffer;
 import org.eclipse.core.resources.IFile;
@@ -29,9 +28,7 @@
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.IRegion;
 import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.TextUtilities;
 import org.eclipse.jst.jsp.core.internal.Logger;
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
 import org.eclipse.text.edits.DeleteEdit;
 import org.eclipse.text.edits.InsertEdit;
 import org.eclipse.text.edits.MalformedTreeException;
@@ -42,9 +39,6 @@
 import org.eclipse.wst.sse.core.internal.FileBufferModelManager;
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
 import org.eclipse.wst.sse.core.internal.provisional.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
 
 
 /**
@@ -187,11 +181,6 @@
 				}
 				else {
 					replaceText = newJavaText.substring(deltas[i].postOffset, deltas[i].postOffset + deltas[i].postLength);
-					
-					// get rid of pre and post white space or fine tuned adjustment later.
-					// fix text here...
-					replaceText = fixJspReplaceText(replaceText, jspPos.offset);
-					
 					jspEdits.add(new ReplaceEdit(jspPos.offset, jspPos.length, replaceText));
 				}
 				if(DEBUG) 
@@ -229,109 +218,6 @@
 		return allJspEdits;
 	}
 	
-	private String fixJspReplaceText(String replaceText, int jspOffset) {
-		
-		// result is the text inbetween the delimiters
-		// eg.
-		// 
-		// <%  result 
-		// %>
-		String result = replaceText.trim();
-		String preDelimiterWhitespace = "";
-		
-		IDocument jspDoc = getJspDocument();
-		if(jspDoc instanceof IStructuredDocument) {
-			IStructuredDocument sDoc = (IStructuredDocument)jspDoc;
-			IStructuredDocumentRegion[] regions = sDoc.getStructuredDocumentRegions(0, jspOffset);
-			IStructuredDocumentRegion lastRegion = regions[regions.length-1];
-			
-			// only specifically modify scriptlets
-			if(lastRegion != null && lastRegion.getType() == DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN) {
-				for (int i = regions.length-1; i >= 0; i--) {
-					IStructuredDocumentRegion region = regions[i];
-					
-					// is there a better way to check whitespace?
-					if(region.getType() == DOMRegionContext.XML_CONTENT && region.getFullText().trim().equals("")) {
-						
-						preDelimiterWhitespace = region.getFullText();
-						preDelimiterWhitespace = preDelimiterWhitespace.replaceAll("\r", "");
-						preDelimiterWhitespace = preDelimiterWhitespace.replaceAll("\n", "");
-						
-						// need to determine indent for that first line...
-						 String initialIndent = getInitialIndent(result);
-						 
-						 // fix the first line of java code
-						result = TextUtilities.getDefaultLineDelimiter(sDoc) 
-									+ initialIndent 
-									+ result;
-						
-						result = adjustIndent(result, preDelimiterWhitespace, TextUtilities.getDefaultLineDelimiter(sDoc));
-						
-						// add whitespace before last delimiter to match
-					    // it w/ the opening delimiter
-						result = result + TextUtilities.getDefaultLineDelimiter(sDoc) + preDelimiterWhitespace;
-						break;
-					}
-				}
-			}
-		}
-		return result;
-	}
-	
-	private String adjustIndent(String textBefore, String indent, String delim) {
-		
-		// first replace multiple indent with single indent
-		// the triple indent occurs because the scriptlet code
-		// actually occurs under:
-		// 
-		//    class
-		//       method
-		//          code
-		// 
-		// in the translated java document
-		
-		textBefore = textBefore.replaceAll("\t\t\t", "\t");
-		
-		// get indent after 2nd line break
-		StringBuffer textAfter = new StringBuffer();
-		// will this work on mac?
-		textBefore = textBefore.replaceAll("\r", "");
-		StringTokenizer st = new StringTokenizer(textBefore, "\n", true);
-		while(st.hasMoreTokens()) {
-			String tok = st.nextToken();
-			if(tok.equals("\n")) {
-				textAfter.append(delim);
-			}
-			else {
-				// prepend each line w/ specified indent
-				textAfter.append(indent);
-				textAfter.append(tok);
-			}
-		}
-		return textAfter.toString();
-		
-	}
-	
-	private String getInitialIndent(String result) {
-		
-		// get indent after 2nd line break
-		String indent = "";
-		StringTokenizer st = new StringTokenizer(result, "\r\n", false);
-		if(st.countTokens() > 1) {
-			String tok = st.nextToken();
-			tok = st.nextToken();
-			int index =0;
-			if(tok != null) {
-				while(tok.charAt(index) == ' ' || tok.charAt(index) == '\t') {
-					indent += tok.charAt(index);
-					index++;
-				}
-			}
-		}
-		return indent;
-	}
-
-
 	/**
 	 * Combines an array of edits into one MultiTextEdit (with the appropriate coverage region)
 	 * @param edits
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java
index b112660..41c770d 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java
@@ -74,16 +74,15 @@
  */
 public class JSPTranslator {
 	
-	// the name of the element in the extension point
-	private static final String EL_TRANSLATOR_EXTENSION_NAME = "elTranslator"; //$NON-NLS-1$
+	private static final String EL_TRANSLATOR_EXTENSION_NAME = "elTranslator"; //$NON-NLS-1$ 
 
-	private static final String ELTRANSLATOR_PROP_NAME = "ELTranslator"; //$NON-NLS-1$
+	private static final String ELTRANSLATOR_PROP_NAME = "ELTranslator"; //$NON-NLS-1$ 
 
 	// Default EL Translator
-	private static final String DEFAULT_JSP_EL_TRANSLATOR_ID = "org.eclipse.jst.jsp.defaultJSP20"; //$NON-NLS-1$
+	private static final String DEFAULT_JSP_EL_TRANSLATOR_ID = "org.eclipse.jst.jsp.defaultJSP20"; //$NON-NLS-1$ 
 	
 	// handy plugin ID constant
-	private static final String JSP_CORE_PLUGIN_ID = "org.eclipse.jst.jsp.core"; //$NON-NLS-1$
+	private static final String JSP_CORE_PLUGIN_ID = "org.eclipse.jst.jsp.core"; //$NON-NLS-1$ 
 
 	// for debugging
 	private static final boolean DEBUG;
@@ -237,6 +236,8 @@
 		String baseLocation = fStructuredModel.getBaseLocation();
 		
 		fELTranslatorID = getELTranslatorProperty(baseLocation);
+		
+		// fPositionNode = node;
 
 		fStructuredDocument = fStructuredModel.getStructuredDocument();
 
@@ -261,7 +262,6 @@
 		fProgressMonitor = monitor;
 		
 		fELTranslatorID = getELTranslatorProperty(jspFile);
-		
 		String className = createClassname(jspFile);
 		if (className.length() > 0) {
 			setClassname(className);
@@ -933,6 +933,7 @@
 		helper.reset(blockText, startOfBlock);
 		// force parse
 		helper.forceParse();
+		helper.writeToBuffers();
 	}
 
 	/*
@@ -1083,32 +1084,41 @@
 	}
 	/**
 	 * translates embedded containers for ALL attribute values
+	 * 
 	 * @param regions
 	 */
 	private void checkAllAttributeValueContainers(Iterator regions) {
 		// tag name is not jsp
 		// handle embedded jsp attributes...
 		ITextRegion embedded = null;
-		Iterator attrRegions = null;
-		ITextRegion attrChunk = null;
+		//Iterator attrRegions = null;
+		//ITextRegion attrChunk = null;
 		while (regions.hasNext()) {
 			embedded = (ITextRegion) regions.next();
 			if (embedded instanceof ITextRegionContainer) {
 				// parse out container
-				attrRegions = ((ITextRegionContainer) embedded).getRegions().iterator();
-				while (attrRegions.hasNext()) {
-					attrChunk = (ITextRegion) attrRegions.next();
-					String type = attrChunk.getType();
-					// embedded JSP in attribute support only want to translate one time per
-					// embedded region so we only translate on the JSP open tags (not content)
-					if (type == DOMJSPRegionContexts.JSP_EXPRESSION_OPEN || type == DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN || type == DOMJSPRegionContexts.JSP_DECLARATION_OPEN || type == DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN || type == DOMJSPRegionContexts.JSP_EL_OPEN) {
-						// now call jsptranslate
-						translateEmbeddedJSPInAttribute((ITextRegionContainer) embedded);
-					}
-				}
+				
+				// https://bugs.eclipse.org/bugs/show_bug.cgi?id=130606
+				// fix exponential iteration problem w/ embedded expressions
+				translateEmbeddedJSPInAttribute((ITextRegionContainer) embedded);
+//				attrRegions = ((ITextRegionContainer) embedded).getRegions().iterator();
+//				while (attrRegions.hasNext()) {
+//					attrChunk = (ITextRegion) attrRegions.next();
+//					String type = attrChunk.getType();
+//					// embedded JSP in attribute support only want to
+//					// translate one time per
+//					// embedded region so we only translate on the JSP open
+//					// tags (not content)
+//					if (type == DOMJSPRegionContexts.JSP_EXPRESSION_OPEN || type == DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN || type == DOMJSPRegionContexts.JSP_DECLARATION_OPEN || type == DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN || type == DOMJSPRegionContexts.JSP_EL_OPEN) {
+//						// now call jsptranslate
+//						translateEmbeddedJSPInAttribute((ITextRegionContainer) embedded);
+//						break;
+//					}
+//				}
 			}
 		}
 	}
+	
 	/**
 	 * translates embedded container for specified attribute
 	 * @param regions
@@ -1624,6 +1634,7 @@
 				getIncludes().push(fileLocation);
 				JSPIncludeRegionHelper helper = new JSPIncludeRegionHelper(this);
 				helper.parse(fileLocation);
+				helper.writeToBuffers();
 				getIncludes().pop();
 			}
 		}
@@ -1790,8 +1801,11 @@
 		boolean isUseBean = false;
 		for (int i = 0; i < regions.size(); i++) {
 			r = regions.get(i);
-			if (r.getType() == DOMRegionContext.XML_TAG_NAME && jspReferenceRegion.getText(r).equals("jsp:useBean")) { //$NON-NLS-1$
-				isUseBean = true;
+			if(r.getType() == DOMRegionContext.XML_TAG_NAME) {
+				if (r.getTextLength() == 11 && jspReferenceRegion.getText(r).equals("jsp:useBean")) { //$NON-NLS-1$
+					isUseBean = true;
+				}
+				// break no matter what if you hit tagname
 				break;
 			}
 		}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/XMLJSPRegionHelper.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/XMLJSPRegionHelper.java
index 8bb1689..6a7ae9d 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/XMLJSPRegionHelper.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/XMLJSPRegionHelper.java
@@ -11,6 +11,7 @@
 package org.eclipse.jst.jsp.core.internal.java;
 
 import java.io.InputStream;
+import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
@@ -20,7 +21,6 @@
 import org.eclipse.core.runtime.Path;
 import org.eclipse.jst.jsp.core.internal.Logger;
 import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
-import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
 import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
 import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker;
 import org.eclipse.wst.sse.core.internal.ltk.parser.StructuredDocumentRegionHandler;
@@ -47,6 +47,10 @@
 	protected String fTextToParse = null;
 	// need this if not at the start of the document (eg. parsing just a script block)
 	protected int fStartOfTextToParse = 0;
+	// buffers for text that this class parses	
+	protected List fScriptlets = new ArrayList();
+	protected List fExpressions = new ArrayList();
+	protected List fDeclarations = new ArrayList();
 	// name of the open tag that was last handled (if we are interested in it)
 	protected String fTagname = null;
 	protected String fTextBefore = ""; //$NON-NLS-1$
@@ -100,6 +104,23 @@
 		forceParse();
 	}
 
+	/*
+	 * writes out scriptlet, expression, and declaration buffers
+	 * to the ongoing buffers in the JSPTranslator (calls to outer JSPTranslator methods)
+	 */
+	public void writeToBuffers() {
+		IStructuredDocumentRegion currentNode = fTranslator.getCurrentNode();
+		// currentNode should be the <%@page include="xxx"%> StructuredDocumentRegion
+		for (int i = 0; i < fScriptlets.size(); i++) {
+			this.fTranslator.translateScriptletString((String) fScriptlets.get(i), currentNode, currentNode.getStartOffset(), currentNode.getLength());
+		}
+		for (int i = 0; i < fExpressions.size(); i++) {
+			this.fTranslator.translateExpressionString((String) fExpressions.get(i), currentNode, currentNode.getStartOffset(), currentNode.getLength());
+		}
+		for (int i = 0; i < fDeclarations.size(); i++) {
+			this.fTranslator.translateDeclarationString((String) fDeclarations.get(i), currentNode, currentNode.getStartOffset(), currentNode.getLength());
+		}
+	}
 
 	/*
 	 * listens to parser node parsed events
@@ -118,23 +139,8 @@
 					fTagname = nameStr;
 				else
 					fTagname = null;
-				
-
-				// this section assumes important content (to translate)
-				// IS the opening tag
-				
-				// handle include and directive
-				if(fTagname != null && sdRegion.getFirstRegion().getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN) {
-					processOtherRegions(sdRegion);	
-				}
-				// handle jsp:useBean
-				if(fTagname != null && fTagname.equals(JSP11Namespace.ElementName.USEBEAN)) {
-					processUseBean(sdRegion);
-				}
 			}
 			else if (sdRegion.getFirstRegion().getType() == DOMJSPRegionContexts.JSP_CONTENT || sdRegion.getFirstRegion().getType() == DOMRegionContext.XML_CONTENT) {
-				// this section assumes important content (to translate)
-				// is AFTER the opening tag
 				if (fTagname != null) {
 					// assign contents to one of the tables
 					if (isScriptlet(fTagname)) {
@@ -146,8 +152,20 @@
 					else if (isDeclaration(fTagname)) {
 						processDeclaration(sdRegion);
 					}
+					else {
+						if (fTagname != null) {
+							processUseBean(sdRegion);
+							processOtherRegions(sdRegion);
+						}
+					}
 				}
 			}
+//			else if (sdRegion.getFirstRegion().getType() == DOMRegionContext.XML_CONTENT) {
+//				if (fTagname != null) {
+//					processUseBean(sdRegion);
+//					processOtherRegions(sdRegion);
+//				}
+//			}
 			else {
 				fTagname = null;
 			}
@@ -199,23 +217,23 @@
 	}
 
 	private void startScope(String tagName) {
-		IStructuredDocumentRegion currentNode = fTranslator.getCurrentNode();
+		//IStructuredDocumentRegion currentNode = fTranslator.getCurrentNode();
 		StringBuffer text = new StringBuffer();
 		text.append("{ // <"); //$NON-NLS-1$
 		text.append(tagName);
 		text.append(">\n"); //$NON-NLS-1$
-		this.fTranslator.translateScriptletString(text.toString(), currentNode, currentNode.getStartOffset(), currentNode.getLength()); //$NON-NLS-1$
-
+		//this.fTranslator.translateScriptletString(text.toString(), currentNode, currentNode.getStartOffset(), currentNode.getLength()); //$NON-NLS-1$
+		fScriptlets.add(text.toString());
 	}
 
 	private void endScope(String tagName) {
-		IStructuredDocumentRegion currentNode = fTranslator.getCurrentNode();
+		//IStructuredDocumentRegion currentNode = fTranslator.getCurrentNode();
 		StringBuffer text = new StringBuffer();
 		text.append("} // </"); //$NON-NLS-1$
 		text.append(tagName);
 		text.append(">\n"); //$NON-NLS-1$
-		this.fTranslator.translateScriptletString(text.toString(), currentNode, currentNode.getStartOffset(), currentNode.getLength()); //$NON-NLS-1$
-
+		//this.fTranslator.translateScriptletString(text.toString(), currentNode, currentNode.getStartOffset(), currentNode.getLength()); //$NON-NLS-1$
+		fScriptlets.add(text.toString());
 	}
 
 	public void resetNodes() {
@@ -242,22 +260,19 @@
 
 	protected void processDeclaration(IStructuredDocumentRegion sdRegion) {
 		prepareText(sdRegion);
-		IStructuredDocumentRegion currentNode = fTranslator.getCurrentNode();
-		this.fTranslator.translateDeclarationString(fStrippedText, currentNode, currentNode.getStartOffset(), currentNode.getLength());
+		fDeclarations.add(fStrippedText);
 		fPossibleOwner = JSPTranslator.DECLARATION;
 	}
 
 	protected void processExpression(IStructuredDocumentRegion sdRegion) {
 		prepareText(sdRegion);
-		IStructuredDocumentRegion currentNode = fTranslator.getCurrentNode();
-		this.fTranslator.translateExpressionString(fStrippedText, currentNode, currentNode.getStartOffset(), currentNode.getLength());
+		fExpressions.add(fStrippedText);
 		fPossibleOwner = JSPTranslator.EXPRESSION;
 	}
 
 	protected void processScriptlet(IStructuredDocumentRegion sdRegion) {
 		prepareText(sdRegion);
-		IStructuredDocumentRegion currentNode = fTranslator.getCurrentNode();
-		this.fTranslator.translateScriptletString(fStrippedText, currentNode, currentNode.getStartOffset(), currentNode.getLength());
+		fScriptlets.add(fStrippedText);
 		fPossibleOwner = JSPTranslator.SCRIPTLET;
 	}
 
@@ -274,7 +289,8 @@
 
 	protected void processUseBean(IStructuredDocumentRegion sdRegion) {
 		if (fTagname != null && isUseBean(fTagname)) {
-
+			// previous region has the actual attributes
+			sdRegion = sdRegion.getPrevious();
 			String beanClass, beanType, beanId, beanDecl = ""; //$NON-NLS-1$
 			beanClass = getAttributeValue("class", sdRegion); //$NON-NLS-1$
 			beanType = getAttributeValue("type", sdRegion); //$NON-NLS-1$
@@ -289,9 +305,8 @@
 					suffix = "new " + beanClass + "();\n"; //$NON-NLS-1$ //$NON-NLS-2$
 				beanDecl = prefix + suffix;
 			}	
-
-			IStructuredDocumentRegion currentNode = fTranslator.getCurrentNode();
-			this.fTranslator.translateScriptletString(beanDecl, currentNode, currentNode.getStartOffset(), currentNode.getLength());
+			
+			fScriptlets.add(beanDecl);
 			fPossibleOwner = JSPTranslator.SCRIPTLET;
 		}
 	}
@@ -367,7 +382,7 @@
 		while (it.hasNext()) {
 			nameRegion = (ITextRegion) it.next();
 			if (nameRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-				textRegionText = sdRegionText.substring(nameRegion.getStart(), nameRegion.getTextEnd());
+				textRegionText = sdRegionText.substring(nameRegion.getStart(), nameRegion.getEnd());
 				if (textRegionText.equalsIgnoreCase(attrName)) {
 					while (it.hasNext()) {
 						valueRegion = (ITextRegion) it.next();
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/ELGeneratorVisitor.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/ELGeneratorVisitor.java
index 939a61c..8c92898 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/ELGeneratorVisitor.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/ELGeneratorVisitor.java
@@ -68,7 +68,7 @@
 	private StringBuffer fResult;
 	private Map fCodeMap;
 	private int fOffsetInUserCode;
-	private static int methodCounter = 0;
+	private int methodCounter = 0;
 	private IStructuredDocument fDocument = null;
 	private int fContentStart;
 	private static Map fOperatorMap;
@@ -199,10 +199,6 @@
 		return(node.childrenAccept(this, data));
 	}
 
-	static synchronized int getMethodCounter() {
-		return methodCounter++;
-	}
-	
 	/**
 	 * Handle top-level expression
 	 */
@@ -210,7 +206,7 @@
 		int start = node.getFirstToken().beginColumn - 1;
 		int end = node.lastToken.endColumn - 1;
 		append(fExpressionHeader1, start, start);
-		append(Integer.toString(getMethodCounter()), start, start);
+		append(Integer.toString(methodCounter++), start, start);
 		append(fExpressionHeader2, start, start);
 		
 		Object retval = node.childrenAccept(this, data);
@@ -353,6 +349,15 @@
 	 * Value node
 	 */
 	public Object visit(ASTValue node, Object data) {
+		if(node.jjtGetNumChildren() >= 2) {
+			if(node.jjtGetChild(0) instanceof ASTValuePrefix && node.jjtGetChild(1) instanceof ASTValueSuffix) {
+				ASTValuePrefix prefix = (ASTValuePrefix) node.jjtGetChild(0);
+				ASTValueSuffix suffix = (ASTValueSuffix) node.jjtGetChild(1);
+				if(prefix.firstToken.image.equals("pageContext") && suffix.getPropertyNameToken().image.equals("request")) {
+					append("((HTTPServletRequest)");
+				}
+			}
+		}
 		return node.childrenAccept(this, data);	
 	}
 
@@ -396,8 +401,21 @@
 		} else if(null != node.getPropertyNameToken()) {
 			Token suffix = node.getPropertyNameToken();
 			String ucaseName = suffix.image.substring(0, 1).toUpperCase() + suffix.image.substring(1, suffix.image.length()); 
+
+			// This is a special case.  Note that the type system, no matter how much type information
+			// we would have wouldn't give us the correct result.  We're looking for "pageContext.request" 
+			// here and will add a downcast to (HTTPServletRequest)
+			
 			append(node.firstToken);
 			append("get" + ucaseName + "()", suffix); //$NON-NLS-1$ //$NON-NLS-2$
+			
+			SimpleNode parent = (SimpleNode) node.jjtGetParent();
+			if(suffix.image.equals("request") && parent instanceof ASTValue && //$NON-NLS-1$
+					parent.jjtGetParent() instanceof ASTUnaryExpression && parent.firstToken.image.equals("pageContext")) { //$NON-NLS-1$
+				append(")");
+			} 
+
+
 		} else {
 			append(node.firstToken);
 		}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPELParserTokenManager.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPELParserTokenManager.java
index 50fe376..74a473d 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPELParserTokenManager.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPELParserTokenManager.java
@@ -372,7 +372,7 @@
       if (curChar < 64)
       {
          long l = 1L << curChar;
-         MatchLoop: do
+         do
          {
             switch(jjstateSet[--i])
             {
@@ -541,7 +541,7 @@
       else if (curChar < 128)
       {
          long l = 1L << (curChar & 077);
-         MatchLoop: do
+         do
          {
             switch(jjstateSet[--i])
             {
@@ -621,7 +621,7 @@
          long l1 = 1L << (hiByte & 077);
          int i2 = (curChar & 0xff) >> 6;
          long l2 = 1L << (curChar & 077);
-         MatchLoop: do
+         do
          {
             switch(jjstateSet[--i])
             {
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceInitializer.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceInitializer.java
index a0f009e..45150ef 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceInitializer.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceInitializer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 IBM Corporation 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
@@ -27,7 +27,7 @@
 
 		// compiler/validation preferences
 		node.putBoolean(JSPCorePreferenceNames.VALIDATE_FRAGMENTS, true);
-
+		
 		// code generation preferences
 		node.put(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$
 		String defaultEnc = "ISO-8859-1";//$NON-NLS-1$
@@ -37,9 +37,5 @@
 		}
 		node.put(CommonEncodingPreferenceNames.OUTPUT_CODESET, defaultEnc);
 		node.put(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$
-
-		// this could be made smarter by actually looking up the content
-		// type's valid extensions
-		node.put(JSPCorePreferenceNames.DEFAULT_EXTENSION, "jsp"); //$NON-NLS-1$
 	}
 }
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceNames.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceNames.java
index 04a4406..bda4dd0 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceNames.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceNames.java
@@ -1,14 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
 package org.eclipse.jst.jsp.core.internal.preferences;
 
 /**
@@ -20,15 +9,6 @@
 	}
 
 	/**
-	 * The default extension to use when none is specified in the New JSP File
-	 * Wizard.
-	 * <p>
-	 * Value is of type <code>String</code>.
-	 * </p>
-	 */
-	public static final String DEFAULT_EXTENSION = "defaultExtension"; //$NON-NLS-1$
-
-	/**
 	 * Indicates if JSP fragments should be compiled/validated. JSP fragments
 	 * will be validated when true.
 	 * <p>
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/text/IJSPPartitionTypes.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/text/IJSPPartitionTypes.java
index 01e96d8..1146bc8 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/text/IJSPPartitionTypes.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/text/IJSPPartitionTypes.java
@@ -18,7 +18,6 @@
 	String JSP_CONTENT_JAVA = JSP_SCRIPT_PREFIX + "JAVA"; //$NON-NLS-1$
 	String JSP_CONTENT_JAVASCRIPT = JSP_SCRIPT_PREFIX + "JAVASCRIPT"; //$NON-NLS-1$
 	String JSP_DEFAULT_EL = JSP_SCRIPT_PREFIX + "JSP_EL"; //$NON-NLS-1$
-	String JSP_DEFAULT_EL2 = JSP_SCRIPT_PREFIX + "JSP_EL2"; //$NON-NLS-1$
 	
 	String JSP_DIRECTIVE = "org.eclipse.jst.jsp.JSP_DIRECTIVE"; //$NON-NLS-1$
 }
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/text/StructuredTextPartitionerForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/text/StructuredTextPartitionerForJSP.java
index 37c9251..24dd977 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/text/StructuredTextPartitionerForJSP.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/text/StructuredTextPartitionerForJSP.java
@@ -170,7 +170,7 @@
 	private static final String XHTML_MIME_TYPE = "text/xhtml"; //$NON-NLS-1$
 	private static final String XML_MIME_TYPE = "text/xml"; //$NON-NLS-1$
 
-	private final static String[] fConfiguredContentTypes = new String[]{IJSPPartitionTypes.JSP_DEFAULT, IJSPPartitionTypes.JSP_DEFAULT_EL, IJSPPartitionTypes.JSP_DEFAULT_EL2, IJSPPartitionTypes.JSP_DIRECTIVE, IJSPPartitionTypes.JSP_CONTENT_DELIMITER, IJSPPartitionTypes.JSP_CONTENT_JAVA, IJSPPartitionTypes.JSP_CONTENT_JAVASCRIPT, IJSPPartitionTypes.JSP_COMMENT};
+	private final static String[] fConfiguredContentTypes = new String[]{IJSPPartitionTypes.JSP_DEFAULT, IJSPPartitionTypes.JSP_DEFAULT_EL, IJSPPartitionTypes.JSP_DIRECTIVE, IJSPPartitionTypes.JSP_CONTENT_DELIMITER, IJSPPartitionTypes.JSP_CONTENT_JAVA, IJSPPartitionTypes.JSP_CONTENT_JAVASCRIPT, IJSPPartitionTypes.JSP_COMMENT};
 
 	/**
 	 * @return
@@ -372,9 +372,6 @@
 		else if (region_type == DOMJSPRegionContexts.JSP_EL_OPEN || region_type == DOMJSPRegionContexts.JSP_EL_CONTENT || region_type == DOMJSPRegionContexts.JSP_EL_CLOSE || region_type == DOMJSPRegionContexts.JSP_EL_DQUOTE
 					|| region_type == DOMJSPRegionContexts.JSP_EL_SQUOTE || region_type == DOMJSPRegionContexts.JSP_EL_QUOTED_CONTENT)
 			result = IJSPPartitionTypes.JSP_DEFAULT_EL;
-		else if (region_type == DOMJSPRegionContexts.JSP_VBL_OPEN || region_type == DOMJSPRegionContexts.JSP_VBL_CONTENT || region_type == DOMJSPRegionContexts.JSP_VBL_CLOSE || region_type == DOMJSPRegionContexts.JSP_VBL_DQUOTE
-					|| region_type == DOMJSPRegionContexts.JSP_VBL_SQUOTE || region_type == DOMJSPRegionContexts.JSP_VBL_QUOTED_CONTENT)
-			result = IJSPPartitionTypes.JSP_DEFAULT_EL2;
 		else if (region_type == DOMRegionContext.XML_CONTENT) {
 			// possibly between <jsp:scriptlet>, <jsp:expression>,
 			// <jsp:declaration>
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/DocumentProvider.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/DocumentProvider.java
index 49aa95b..c5a0789 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/DocumentProvider.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/DocumentProvider.java
@@ -130,12 +130,8 @@
 	 * @return Document
 	 */
 	public Document getDocument() {
-		return getDocument(true);
-	}
-
-	public Document getDocument(boolean createEmptyOnFailure) {
 		if (document == null)
-			load(createEmptyOnFailure);
+			load();
 		return document;
 	}
 
@@ -169,7 +165,7 @@
 	public Element getElement(String name) {
 		Element result = null;
 		if (document == null)
-			load(false);
+			load();
 		if (document != null) {
 			result = (Element) getNode(getRootElement(), name);
 		}
@@ -184,9 +180,6 @@
 		if (resolver == null) {
 			resolver = new EntityResolver() {
 				public InputSource resolveEntity(String publicID, String systemID) throws SAXException, IOException {
-					if (!isValidating())
-						return null;
-
 					InputSource result = null;
 					if (getBaseReference() != null) {
 						try {
@@ -387,7 +380,7 @@
 		return fValidating;
 	}
 
-	void load(boolean createEmptyOnFailure) {
+	public void load() {
 		// rootElementName and fileName are expected to be defined at this
 		// point
 		document = getParsedDocument();
@@ -399,20 +392,18 @@
 		}
 
 		if (document == null || rootElement == null) {
-			if (createEmptyOnFailure) {
-				document = getNewDocument();
-				if (document != null) {
-					NodeList children = document.getChildNodes();
+			document = getNewDocument();
+			if (document != null) {
+				NodeList children = document.getChildNodes();
+				for (int i = 0; i < children.getLength(); i++) {
+					if (children.item(i).getNodeType() == Node.ELEMENT_NODE && children.item(i).getNodeName().equals(getRootElementName()))
+						rootElement =  children.item(i);
+				}
+				if (rootElement == null) {
 					for (int i = 0; i < children.getLength(); i++) {
-						if (children.item(i).getNodeType() == Node.ELEMENT_NODE && children.item(i).getNodeName().equals(getRootElementName()))
+						if (children.item(i).getNodeType() == Node.ELEMENT_NODE) {
 							rootElement = children.item(i);
-					}
-					if (rootElement == null) {
-						for (int i = 0; i < children.getLength(); i++) {
-							if (children.item(i).getNodeType() == Node.ELEMENT_NODE) {
-								rootElement = children.item(i);
-								break;
-							}
+							break;
 						}
 					}
 				}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPValidator.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPValidator.java
index 5b6e839..2e1ffb7 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPValidator.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPValidator.java
@@ -20,24 +20,18 @@
 import org.eclipse.core.runtime.content.IContentDescription;
 import org.eclipse.core.runtime.content.IContentType;
 import org.eclipse.jdt.core.compiler.IProblem;
-import org.eclipse.jface.text.IDocument;
 import org.eclipse.jst.jsp.core.internal.JSPCoreMessages;
 import org.eclipse.jst.jsp.core.internal.JSPCorePlugin;
 import org.eclipse.jst.jsp.core.internal.java.IJSPTranslation;
 import org.eclipse.jst.jsp.core.internal.java.JSPTranslation;
 import org.eclipse.jst.jsp.core.internal.java.JSPTranslationAdapter;
 import org.eclipse.jst.jsp.core.internal.java.JSPTranslationAdapterFactory;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslationExtension;
 import org.eclipse.jst.jsp.core.internal.preferences.JSPCorePreferenceNames;
 import org.eclipse.jst.jsp.core.internal.provisional.contenttype.ContentTypeIdForJSP;
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
 import org.eclipse.wst.sse.core.internal.provisional.StructuredModelManager;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-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.core.internal.provisional.text.ITextRegionList;
 import org.eclipse.wst.validation.internal.core.Message;
 import org.eclipse.wst.validation.internal.core.ValidationException;
 import org.eclipse.wst.validation.internal.operations.IWorkbenchContext;
@@ -47,7 +41,6 @@
 import org.eclipse.wst.validation.internal.provisional.core.IValidator;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
 
 public class JSPValidator implements IValidator {
 
@@ -272,7 +265,6 @@
 		int sourceEnd = translation.getJspOffset(problem.getSourceEnd());
 		if (sourceStart == -1)
 			return null;
-		
 		// line number for marker starts @ 1
 		// line number from document starts @ 0
 		int lineNo = structuredDoc.getLineOfOffset(sourceStart) + 1;
@@ -285,94 +277,10 @@
 		m.setOffset(sourceStart);
 		m.setLength(sourceEnd - sourceStart + 1);
 
-		// need additional adjustment for problems from
-		// indirect (included) files
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=119633
-		if(translation.isIndirect(problem.getSourceStart())) {
-			adjustIndirectPosition(m, translation);
-		}
-		
 		return m;
 	}
 
 	/**
-	 * Assumed the message offset is an indirect position.
-	 * In other words, an error from an included file.
-	 * 
-	 * @param m
-	 * @param translation
-	 */
-	private void adjustIndirectPosition(IMessage m, JSPTranslation translation) {
-		
-		if(!(translation instanceof JSPTranslationExtension))
-			return;
-		
-		IDocument jspDoc = ((JSPTranslationExtension)translation).getJspDocument();
-		if(!(jspDoc instanceof IStructuredDocument))
-			return;
-		
-		IStructuredDocument sDoc = (IStructuredDocument)jspDoc;
-		IStructuredDocumentRegion[] regions = sDoc.getStructuredDocumentRegions(0, m.getOffset() + m.getLength());
-		// iterate backwards until you hit the include directive
-		for(int i=regions.length-1; i>=0; i--) {
-			
-			IStructuredDocumentRegion region = regions[i];
-			if(region.getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
-				if(getDirectiveName(region).equals("include")) { //$NON-NLS-1$
-					ITextRegion fileValueRegion = getAttributeValueRegion(region, "file"); //$NON-NLS-1$
-					m.setOffset(region.getStartOffset(fileValueRegion));
-					m.setLength(fileValueRegion.getTextLength());
-					break;
-				}
-			}
-		}
-	}
-	
-	/**
-	 * 
-	 * @param sdr
-	 * @return the jsp directive name
-	 */
-	private String getDirectiveName(IStructuredDocumentRegion sdr) {
-		String name = "";
-		ITextRegionList subRegions = sdr.getRegions();
-		for (int j = 0; j < subRegions.size(); j++) {
-			ITextRegion subRegion = subRegions.get(j);
-			if(subRegion.getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
-				name = sdr.getText(subRegion);
-				break;
-			}
-		}
-		return name;
-	}
-	
-	/**
-	 * 
-	 * @param sdr
-	 * @param attrName
-	 * @return the ITextRegion for the attribute value of the given attribute name
-	 */
-	private ITextRegion getAttributeValueRegion(IStructuredDocumentRegion sdr, String attrName) {
-		ITextRegion valueRegion = null;
-		ITextRegionList subRegions = sdr.getRegions();
-		for (int i = 0; i < subRegions.size(); i++) {
-			ITextRegion subRegion = subRegions.get(i);
-			if(subRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME && sdr.getText(subRegion).equals(attrName)) {
-				
-				for(int j=i+1; i<subRegions.size(); j++) {
-					subRegion = subRegions.get(j);
-					if(subRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-						valueRegion = subRegion;
-						break;
-					}
-				}
-				break;
-			}
-		}
-		return valueRegion;
-	}
-
-	/**
 	 * When loading model from a file, you need to explicitly add adapter
 	 * factory.
 	 * 
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ProjectDescription.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ProjectDescription.java
index 6e311f1..04bd47b 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ProjectDescription.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ProjectDescription.java
@@ -11,15 +11,19 @@
  *******************************************************************************/
 package org.eclipse.jst.jsp.core.taglib;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.net.URLConnection;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Locale;
 import java.util.Stack;
 
 import org.eclipse.core.filebuffers.FileBuffers;
@@ -49,6 +53,8 @@
 import org.eclipse.jst.jsp.core.internal.util.DocumentProvider;
 import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
 import org.eclipse.wst.sse.core.internal.util.JarUtilities;
+import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
+import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
 import org.w3c.dom.Document;
 import org.w3c.dom.EntityReference;
 import org.w3c.dom.Node;
@@ -446,15 +452,107 @@
 	void clear() {
 	}
 
+	private ITaglibRecord createCatalogRecord(String urlString) {
+		ITaglibRecord record = null;
+		if (urlString.toLowerCase(Locale.US).endsWith((".jar")) && urlString.startsWith("file:")) {
+			String fileLocation = null;
+			try {
+				URL url = new URL(urlString);
+				fileLocation = url.getFile();
+			}
+			catch (MalformedURLException e) {
+				// not worth reporting
+			}
+			if (fileLocation != null) {
+				JarRecord jarRecord = createJARRecord(fileLocation);
+				String[] entries = JarUtilities.getEntryNames(fileLocation);
+				for (int jEntry = 0; jEntry < entries.length; jEntry++) {
+					if (entries[jEntry].endsWith(".tld")) { //$NON-NLS-1$
+						if (entries[jEntry].equals(JarUtilities.JSP11_TAGLIB)) {
+							jarRecord.has11TLD = true;
+							InputStream contents = JarUtilities.getInputStream(fileLocation, entries[jEntry]);
+							if (contents != null) {
+								TaglibInfo info = extractInfo(fileLocation, contents);
+								jarRecord.info = info;
+							}
+							try {
+								contents.close();
+							}
+							catch (IOException e) {
+							}
+						}
+					}
+				}
+				if (jarRecord.has11TLD) {
+					if (_debugIndexCreation)
+						Logger.log(Logger.INFO_DEBUG, "created catalog record for " + urlString + "@" + jarRecord.getLocation()); //$NON-NLS-1$ //$NON-NLS-2$
+					record = jarRecord;
+				}
+
+			}
+		}
+		else {
+			URL url = null;
+			ByteArrayInputStream cachedContents = null;
+			InputStream tldStream = null;
+			try {
+				url = new URL(urlString);
+				URLConnection connection = url.openConnection();
+				connection.setDefaultUseCaches(false);
+				tldStream = connection.getInputStream();
+			}
+			catch (Exception e1) {
+				Logger.logException(e1);
+			}
+
+			int c;
+			ByteArrayOutputStream buffer = new ByteArrayOutputStream();
+			// array dim restriction?
+			byte bytes[] = new byte[2048];
+			try {
+				while ((c = tldStream.read(bytes)) >= 0) {
+					buffer.write(bytes, 0, c);
+				}
+				cachedContents = new ByteArrayInputStream(buffer.toByteArray());
+			}
+			catch (IOException ioe) {
+				// no cleanup can be done
+			}
+			finally {
+				try {
+					tldStream.close();
+				}
+				catch (IOException e) {
+				}
+			}
+
+			URLRecord urlRecord = null;
+			TaglibInfo info = extractInfo(urlString, cachedContents);
+			if (info != null) {
+				urlRecord = new URLRecord();
+				urlRecord.info = info;
+				urlRecord.baseLocation = urlString;
+				urlRecord.url = url; //$NON-NLS-1$ //$NON-NLS-2$
+			}
+			try {
+				cachedContents.close();
+			}
+			catch (IOException e) {
+			}
+			record = urlRecord;
+		}
+		return record;
+	}
+
 	/**
 	 * @param resource
 	 * @return
 	 */
-	private ITaglibRecord createJARRecord(IResource jar) {
+	private JarRecord createJARRecord(IResource jar) {
 		return createJARRecord(jar.getLocation().toString());
 	}
 
-	private ITaglibRecord createJARRecord(String fileLocation) {
+	private JarRecord createJARRecord(String fileLocation) {
 		JarRecord record = new JarRecord();
 		record.location = new Path(fileLocation);
 		record.urlRecords = new ArrayList(0);
@@ -930,6 +1028,32 @@
 			record = (ITaglibRecord) fClasspathReferences.get(reference);
 		}
 
+		// Check the XML Catalog
+		if (record == null) {
+			ICatalog catalog = XMLCorePlugin.getDefault().getDefaultXMLCatalog();
+			if (catalog != null) {
+				String resolvedString = null;
+				try {
+					// Check as system reference first
+					resolvedString = catalog.resolveSystem(reference);
+					// Check as URI
+					if (resolvedString == null || resolvedString.trim().length() == 0) {
+						resolvedString = catalog.resolveURI(reference);
+					}
+					// Check as public ID
+					if (resolvedString == null || resolvedString.trim().length() == 0) {
+						resolvedString = catalog.resolvePublic(reference, basePath);
+					}
+				}
+				catch (Exception e) {
+					Logger.logException(e);
+				}
+				if (resolvedString != null && resolvedString.trim().length() > 0) {
+					record = createCatalogRecord(resolvedString);
+				}
+			}
+		}
+
 		// If no records were found and no local-root applies, check ALL of
 		// the web.xml files as a fallback
 		if (record == null && fProject.getFullPath().toString().equals(getLocalRoot(basePath))) {
@@ -945,7 +1069,7 @@
 
 	void updateClasspathLibrary(String libraryLocation, int deltaKind) {
 		String[] entries = JarUtilities.getEntryNames(libraryLocation);
-		JarRecord libraryRecord = (JarRecord) createJARRecord(libraryLocation);
+		JarRecord libraryRecord = createJARRecord(libraryLocation);
 		fClasspathJars.put(libraryLocation, libraryRecord);
 		for (int i = 0; i < entries.length; i++) {
 			if (entries[i].equals(JarUtilities.JSP11_TAGLIB)) {
@@ -988,7 +1112,7 @@
 			Logger.log(Logger.INFO_DEBUG, "creating records for JAR " + jar.getFullPath()); //$NON-NLS-1$
 		String jarLocationString = jar.getLocation().toString();
 		String[] entries = JarUtilities.getEntryNames(jar);
-		JarRecord jarRecord = (JarRecord) createJARRecord(jar);
+		JarRecord jarRecord = createJARRecord(jar);
 		fJARReferences.put(jar.getFullPath().toString(), jarRecord);
 		for (int i = 0; i < entries.length; i++) {
 			if (entries[i].endsWith(".tld")) { //$NON-NLS-1$
@@ -1070,7 +1194,7 @@
 			provider.setValidating(false);
 			provider.setRootElementName("web-app"); //$NON-NLS-1$
 			provider.setBaseReference(webxml.getParent().getLocation().toString());
-			document = provider.getDocument(false);
+			document = provider.getDocument();
 		}
 		catch (CoreException e) {
 			Logger.logException(e);
@@ -1105,18 +1229,53 @@
 				path = new Path(URIHelper.normalize(taglibLocation, webxml.getFullPath().toString(), getLocalRoot(webxml.getLocation().toString())));
 			}
 			if (path.segmentCount() > 1) {
-				IFile tldResource = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
-				if (tldResource.isAccessible()) {
-					TLDRecord record = createTLDRecord(tldResource);
-					// the stored URI should reflect the web.xml's value
-					record.info.uri = taglibUri;
+				IFile resource = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+				if (resource.isAccessible()) {
+					ITaglibRecord record = null;
+					/*
+					 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=125960
+					 * 
+					 * Also support mappings to .jar files
+					 */
+					if (resource.getFileExtension().equalsIgnoreCase(("jar"))) {
+						JarRecord jarRecord = createJARRecord(resource);
+						String[] entries = JarUtilities.getEntryNames(resource);
+						for (int jEntry = 0; jEntry < entries.length; jEntry++) {
+							if (entries[jEntry].endsWith(".tld")) { //$NON-NLS-1$
+								if (entries[jEntry].equals(JarUtilities.JSP11_TAGLIB)) {
+									jarRecord.has11TLD = true;
+									InputStream contents = JarUtilities.getInputStream(resource, entries[jEntry]);
+									if (contents != null) {
+										TaglibInfo info = extractInfo(resource.getLocation().toString(), contents);
+										jarRecord.info = info;
+									}
+									try {
+										contents.close();
+									}
+									catch (IOException e) {
+									}
+								}
+							}
+						}
+						record = jarRecord;
+						// the stored URI should reflect the web.xml's value
+						jarRecord.info.uri = taglibUri;
+						if (_debugIndexCreation)
+							Logger.log(Logger.INFO_DEBUG, "created web.xml record for " + taglibUri + "@" + jarRecord.getLocation()); //$NON-NLS-1$ //$NON-NLS-2$
+					}
+					else {
+						TLDRecord tldRecord = createTLDRecord(resource);
+						record = tldRecord;
+						// the stored URI should reflect the web.xml's value
+						tldRecord.info.uri = taglibUri;
+						if (_debugIndexCreation)
+							Logger.log(Logger.INFO_DEBUG, "created web.xml record for " + taglibUri + "@" + tldRecord.getPath()); //$NON-NLS-1$ //$NON-NLS-2$
+					}
 					webxmlRecord.tldRecords.add(record);
 					getImplicitReferences(webxml.getFullPath().toString()).put(taglibUri, record);
-					if (_debugIndexCreation)
-						Logger.log(Logger.INFO_DEBUG, "created web.xml record for " + taglibUri + "@" + record.getPath()); //$NON-NLS-1$ //$NON-NLS-2$
 					TaglibIndex.fireTaglibRecordEvent(new TaglibRecordEvent(record, deltaKind));
 				}
 			}
 		}
 	}
-}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndex.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndex.java
index 74c8c36..57ea525 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndex.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndex.java
@@ -312,8 +312,7 @@
 	 * @deprecated - is not correct in flexible projects
 	 * @param path -
 	 *            a path under the web-app root
-	 * @return the IPath considered to be the web-app's root for the given
-	 *         path
+	 * @return
 	 */
 	public static IPath getContextRoot(IPath path) {
 		return _instance.internalGetContextRoot(path);
diff --git a/bundles/org.eclipse.jst.jsp.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.jsp.ui/META-INF/MANIFEST.MF
index f7bc023..879c78f 100644
--- a/bundles/org.eclipse.jst.jsp.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.jsp.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.jsp.ui; singleton:=true
-Bundle-Version: 1.0.100.qualifier
+Bundle-Version: 1.0.1.qualifier
 Bundle-Activator: org.eclipse.jst.jsp.ui.internal.JSPUIPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/StructuredTextViewerConfigurationJSP.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/StructuredTextViewerConfigurationJSP.java
index 06ef634..0943cf6 100644
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/StructuredTextViewerConfigurationJSP.java
+++ b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/StructuredTextViewerConfigurationJSP.java
@@ -44,9 +44,7 @@
 import org.eclipse.jst.jsp.ui.internal.style.LineStyleProviderForJSP;
 import org.eclipse.jst.jsp.ui.internal.style.java.LineStyleProviderForJava;
 import org.eclipse.jst.jsp.ui.internal.style.jspel.LineStyleProviderForJSPEL;
-import org.eclipse.jst.jsp.ui.internal.taginfo.JSPInformationProvider;
 import org.eclipse.jst.jsp.ui.internal.taginfo.JSPJavaJavadocHoverProcessor;
-import org.eclipse.jst.jsp.ui.internal.taginfo.JSPJavaJavadocInformationProvider;
 import org.eclipse.jst.jsp.ui.internal.taginfo.JSPTagInfoHoverProcessor;
 import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants;
 import org.eclipse.wst.css.core.internal.provisional.text.ICSSPartitionTypes;
@@ -308,14 +306,6 @@
 			IInformationPresenter xmlPresenter = getXMLSourceViewerConfiguration().getInformationPresenter(sourceViewer);
 			provider = xmlPresenter.getInformationProvider(IXMLPartitions.XML_DEFAULT);
 		}
-		else if ((partitionType == IJSPPartitionTypes.JSP_DEFAULT) || (partitionType == IJSPPartitionTypes.JSP_DIRECTIVE)) {
-			// JSP tags
-			provider = new JSPInformationProvider();
-		}
-		else if (partitionType == IJSPPartitionTypes.JSP_CONTENT_JAVA) {
-			// JSP java
-			provider = new JSPJavaJavadocInformationProvider();
-		}
 		return provider;
 	}
 
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/JSPUIMessages.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/JSPUIMessages.java
index acc2fce..aeff150 100644
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/JSPUIMessages.java
+++ b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/JSPUIMessages.java
@@ -45,7 +45,6 @@
 	public static String _UI_WIZARD_NEW_HEADING;
 	public static String _UI_WIZARD_NEW_DESCRIPTION;
 	public static String _ERROR_FILENAME_MUST_END_JSP;
-	public static String ResourceGroup_nameExists;
 	public static String NewJSPTemplatesWizardPage_0;
 	public static String NewJSPTemplatesWizardPage_1;
 	public static String NewJSPTemplatesWizardPage_2;
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/JSPUIPluginResources.properties b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/JSPUIPluginResources.properties
index 77444ac..a447662 100644
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/JSPUIPluginResources.properties
+++ b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/JSPUIPluginResources.properties
@@ -37,7 +37,6 @@
 _UI_WIZARD_NEW_HEADING = JavaServer Page
 _UI_WIZARD_NEW_DESCRIPTION = Create a new JavaServer Page.
 _ERROR_FILENAME_MUST_END_JSP = The file name must end in one of the following extensions {0}.
-ResourceGroup_nameExists = The same name already exists.
 NewJSPTemplatesWizardPage_0=Select JSP Template
 NewJSPTemplatesWizardPage_1=Select a template as initial content in the JSP page.
 NewJSPTemplatesWizardPage_2=Name
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/AutoImportProposal.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/AutoImportProposal.java
deleted file mode 100644
index d0e1bf9..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/AutoImportProposal.java
+++ /dev/null
@@ -1,142 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.contentassist;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.TextUtilities;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.text.edits.InsertEdit;
-import org.eclipse.text.edits.MalformedTreeException;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-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.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public class AutoImportProposal extends JSPCompletionProposal {
-	
-	// the import string, no quotes or colons
-	String fImportDeclaration;
-	
-	public AutoImportProposal(String importDeclaration, String replacementString, int replacementOffset, int replacementLength, int cursorPosition, Image image, String displayString, IContextInformation contextInformation, String additionalProposalInfo, int relevance, boolean updateReplacementLengthOnValidate) {
-		super(replacementString, replacementOffset, replacementLength, cursorPosition, image, displayString, contextInformation, additionalProposalInfo, relevance, updateReplacementLengthOnValidate);
-		setImportDeclaration(importDeclaration);
-	}
-	
-	public void apply(ITextViewer viewer, char trigger, int stateMask, int offset) {
-		super.apply(viewer, trigger, stateMask, offset);
-		addImportDeclaration(viewer);
-	}
-	/**
-	 * adds the import declaration to the document in the viewer in the appropriate position
-	 * @param viewer
-	 */
-	private void addImportDeclaration(ITextViewer viewer) {
-		
-		IDocument doc = viewer.getDocument();
-		
-		// calculate once and pass along
-		boolean isXml = isXmlFormat(doc);
-		
-		int insertPosition = getInsertPosition(doc, isXml);
-		String insertText = createImportDeclaration(doc, isXml);
-		InsertEdit insert = new InsertEdit(insertPosition, insertText);
-		try {
-			insert.apply(doc);
-		}
-		catch (MalformedTreeException e) {
-			Logger.logException(e);
-		}
-		catch (BadLocationException e) {
-			Logger.logException(e);
-		}
-		
-		// make sure the cursor position after is correct
-		setCursorPosition(getCursorPosition() + insertText.length());
-	}
-	/**
-	 * 
-	 * @param doc
-	 * @param isXml
-	 * @return position after <jsp:root> if xml, otherwise right before the document element
-	 */
-	private int getInsertPosition(IDocument doc, boolean isXml) {
-		int pos = 0;
-		IStructuredModel sModel = StructuredModelManager.getModelManager().getExistingModelForRead(doc);
-		try {
-			if(sModel != null) {
-				if(sModel instanceof IDOMModel) {
-					IDOMDocument documentNode = ((IDOMModel)sModel).getDocument();
-					Node docElement = documentNode.getDocumentElement();
-					if(docElement != null && docElement instanceof IDOMElement) {
-						IStructuredDocumentRegion sdRegion = ((IDOMElement)docElement).getFirstStructuredDocumentRegion();
-						if(isXml) {
-							// insert right after document element
-							pos = sdRegion.getEndOffset();
-						}
-						else {
-							// insert before document element
-							pos = sdRegion.getStartOffset();
-						}
-					}
-				}
-			}
-		}
-		finally {
-			if(sModel != null)
-				sModel.releaseFromRead();
-		}
-		return pos;
-	}
-	/**
-	 * 
-	 * @param doc
-	 * @return true if this document is xml-jsp syntax, otherwise false
-	 */
-	private boolean isXmlFormat(IDocument doc) {
-		boolean isXml = false;
-		IStructuredModel sModel = StructuredModelManager.getModelManager().getExistingModelForRead(doc);
-		try {
-			if(sModel != null) {
-				if(!isXml) {
-					if(sModel instanceof IDOMModel) {
-						IDOMDocument documentNode = ((IDOMModel)sModel).getDocument();
-						Element docElement = documentNode.getDocumentElement();
-						isXml = docElement != null && ((docElement.getNodeName().equals("jsp:root")) || ((((IDOMNode) docElement).getStartStructuredDocumentRegion() == null && ((IDOMNode) docElement).getEndStructuredDocumentRegion() == null))); //$NON-NLS-1$
-					}
-				}				
-			}
-		}
-		finally {
-			if(sModel != null)
-				sModel.releaseFromRead();
-		}
-		return isXml;
-	}
-	/**
-	 * 
-	 * @param doc
-	 * @param isXml
-	 * @return appropriate import declaration string depending if document is xml or not
-	 */
-	private String createImportDeclaration(IDocument doc, boolean isXml) {
-		String delim = (doc instanceof IStructuredDocument) ? ((IStructuredDocument)doc).getLineDelimiter() : TextUtilities.getDefaultLineDelimiter(doc);
-		if(isXml)
-			return delim + "<jsp:directive.page import=\""+getImportDeclaration()+"\"/>"; //$NON-NLS-1$ //$NON-NLS-2$
-		return "<%@page import=\"" + getImportDeclaration() + "\"%>" + delim; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public String getImportDeclaration() {
-		return fImportDeclaration;
-	}
-	public void setImportDeclaration(String importDeclaration) {
-		fImportDeclaration = importDeclaration;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPCompletionProposal.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPCompletionProposal.java
index 6b0eb1f..e0e6c3b 100644
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPCompletionProposal.java
+++ b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPCompletionProposal.java
@@ -22,7 +22,6 @@
 	 */
 	public void apply(ITextViewer viewer, char trigger, int stateMask, int offset) {
 		super.apply(viewer, trigger, stateMask, offset);
-		// not sure why we needed this
-		//viewer.setSelectedRange(getCursorPosition(), 0);
+		viewer.setSelectedRange(getCursorPosition(), 0);
 	}
 }
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPContentAssistProcessor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPContentAssistProcessor.java
index de14905..39858f5 100644
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPContentAssistProcessor.java
+++ b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPContentAssistProcessor.java
@@ -866,48 +866,8 @@
 				jspResults = merge(jspResults, htmlResults);
 			}
 		}
-
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=86656
-		if(partitionType == IJSPPartitionTypes.JSP_DIRECTIVE) {
-			ICompletionProposal[] importProposals = getImportProposals(viewer, documentPosition);
-			if(importProposals.length > 0)
-				jspResults = merge(jspResults, importProposals);			
-		}
 		return jspResults;
 	}
-	
-	private ICompletionProposal[] getImportProposals(ITextViewer viewer, int documentPosition) {
-		List importProposals = new ArrayList();
-		ICompletionProposal[] proposals =  getJSPJavaCompletionProposals(viewer, documentPosition);
-		for (int i = 0; i < proposals.length; i++) {
-			if(proposals[i] instanceof JSPCompletionProposal) {
-				
-				ICompletionProposal importProposal = adjustImportProposal((JSPCompletionProposal)proposals[i]);
-				importProposals.add(importProposal);
-			}
-		}
-		return (ICompletionProposal[])importProposals.toArray(new ICompletionProposal[importProposals.size()]);
-	}
-
-	
-	private ICompletionProposal adjustImportProposal(JSPCompletionProposal importProposal) {
-		
-		// just need to remove the ";"
-		// and adjust offsets for the change
-		String newReplace = importProposal.getReplacementString().replaceAll(";", ""); 
-		importProposal.setReplacementString(newReplace);
-		
-		String newDisplay = importProposal.getDisplayString().replaceAll(";", "");
-		importProposal.setDisplayString(newDisplay);
-		
-		int newReplacementLength = importProposal.getReplacementLength()-1;
-		importProposal.setReplacementLength(newReplacementLength);
-		
-		int newCursorPosition = importProposal.getCursorPosition() - 1;
-		importProposal.setCursorPosition(newCursorPosition);
-		
-		return importProposal;
-	}
 
 	/**
 	 * Adds 2 arrays of ICompletionProposals and sorts them with a
@@ -996,7 +956,7 @@
 		JSPJavaContentAssistProcessor p = (JSPJavaContentAssistProcessor) fPartitionToProcessorMap.get(IJSPPartitionTypes.JSP_DEFAULT);
 		return p.computeCompletionProposals(viewer, documentPosition);
 	}
-	
+
 	/**
 	 * @param viewer
 	 * @param documentPosition
@@ -1185,7 +1145,8 @@
 			}
 		}
 		
-		addTemplates(request, TemplateContextTypeIdsJSP.ALL);
+		// bug115927 use original document position for all/any region templates
+		addTemplates(request, TemplateContextTypeIdsJSP.ALL, documentPosition);
 		return request;
 	}
 
@@ -1203,6 +1164,17 @@
 	 * @param context
 	 */
 	private void addTemplates(ContentAssistRequest contentAssistRequest, String context) {
+		addTemplates(contentAssistRequest, context, contentAssistRequest.getReplacementBeginPosition());
+	}
+	
+	/**
+	 * Adds templates to the list of proposals
+	 * 
+	 * @param contentAssistRequest
+	 * @param context
+	 * @param startOffset
+	 */
+	private void addTemplates(ContentAssistRequest contentAssistRequest, String context, int startOffset) {
 		if (contentAssistRequest == null)
 			return;
 		
@@ -1214,7 +1186,7 @@
 
 			if (getTemplateCompletionProcessor() != null) {
 				getTemplateCompletionProcessor().setContextType(context);
-				ICompletionProposal[] proposals = getTemplateCompletionProcessor().computeCompletionProposals(fTextViewer, contentAssistRequest.getReplacementBeginPosition());
+				ICompletionProposal[] proposals = getTemplateCompletionProcessor().computeCompletionProposals(fTextViewer, startOffset);
 				for (int i = 0; i < proposals.length; ++i) {
 					if (useProposalList)
 						contentAssistRequest.addProposal(proposals[i]);
@@ -1224,8 +1196,7 @@
 			}
 		}
 	}
-
-
+	
 	protected void addEntityProposals(ContentAssistRequest contentAssistRequest, int documentPosition, ITextRegion completionRegion, IDOMNode treeNode) {
 		// ignore
 	}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPProposalCollector.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPProposalCollector.java
index 829382c..af7392d 100644
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPProposalCollector.java
+++ b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPProposalCollector.java
@@ -85,90 +85,36 @@
 		
 		JSPCompletionProposal jspProposal = null;
 		
-		// ignore constructor proposals (they're not relevant for our JSP proposal list)
-		if(!proposal.isConstructor()) {
-			
-			if(proposal.getKind() == CompletionProposal.TYPE_REF) {
-				String signature = String.valueOf(proposal.getDeclarationSignature());
-				String completion = String.valueOf(proposal.getCompletion());
-				if(completion.indexOf(signature) != -1) {
-					jspProposal = createAutoImportProposal(proposal);			
-				}
-			}
-			
-			// default behavior
-			if(jspProposal == null)
-				jspProposal = createJspProposal(proposal);		
-		}
-		return jspProposal;
-	}
-
-	
-	
-	private JSPCompletionProposal createAutoImportProposal(CompletionProposal proposal) {
-		
-		JSPCompletionProposal jspProposal = null;
-
-		String signature = new String(proposal.getDeclarationSignature());
-		String completion = new String(proposal.getCompletion());
-		
-		// it's fully qualified so we should
-		// add an import statement
-		// create an autoimport proposal
-		String newCompletion = completion.replaceAll(signature + ".", "");
-		
-		// java offset
-		int offset = proposal.getReplaceStart();
-		// replacement length
-		int length = proposal.getReplaceEnd() - offset;
-		// translate offset from Java > JSP
-		offset = fTranslation.getJspOffset(offset);
-		// cursor position after must be calculated
-		int positionAfter = calculatePositionAfter(proposal, newCompletion, offset);
-		
-		// from java proposal
-		IJavaCompletionProposal javaProposal = super.createJavaCompletionProposal(proposal);
-		proposal.getDeclarationSignature();
-		Image image = javaProposal.getImage();
-		String displayString = javaProposal.getDisplayString();
-		displayString = fixupDisplayString(displayString);
-		IContextInformation contextInformation = javaProposal.getContextInformation();
-		String additionalInfo = javaProposal.getAdditionalProposalInfo();
-		int relevance = javaProposal.getRelevance();
-		
-		boolean updateLengthOnValidate = true;
-		
-		jspProposal = new AutoImportProposal(completion, newCompletion, offset, length, positionAfter, image, displayString, contextInformation, additionalInfo, relevance, updateLengthOnValidate);
-		
-		return jspProposal;
-	}
-
-	private JSPCompletionProposal createJspProposal(CompletionProposal proposal) {
-		
-		JSPCompletionProposal jspProposal;
+		// from proposal
 		String completion = String.valueOf(proposal.getCompletion());
-		// java offset
-		int offset = proposal.getReplaceStart();
-		// replacement length
-		int length = proposal.getReplaceEnd() - offset;
-		// translate offset from Java > JSP
-		offset = fTranslation.getJspOffset(offset);
-		// cursor position after must be calculated
-		int positionAfter = calculatePositionAfter(proposal, completion, offset);
+		String mangledName = getMangledName();
 		
-		// from java proposal
-		IJavaCompletionProposal javaProposal = super.createJavaCompletionProposal(proposal);
-		proposal.getDeclarationSignature();
-		Image image = javaProposal.getImage();
-		String displayString = javaProposal.getDisplayString();
-		displayString = fixupDisplayString(displayString);
-		IContextInformation contextInformation = javaProposal.getContextInformation();
-		String additionalInfo = javaProposal.getAdditionalProposalInfo();
-		int relevance = javaProposal.getRelevance();
-		
-		boolean updateLengthOnValidate = true;
-		
-		jspProposal = new JSPCompletionProposal(completion, offset, length, positionAfter, image, displayString, contextInformation, additionalInfo, relevance, updateLengthOnValidate);
+		// ignore constructor proposals
+		// (they will include mangled servlet name)
+		if(mangledName != null && completion.indexOf(mangledName) == -1) {
+			
+			// java offset
+			int offset = proposal.getReplaceStart();
+			// replacement length
+			int length = proposal.getReplaceEnd() - offset;
+			// translate offset from Java > JSP
+			offset = fTranslation.getJspOffset(offset);
+			// cursor position after must be calculated
+			int positionAfter = calculatePositionAfter(proposal, completion, offset);
+			
+			// from java proposal
+			IJavaCompletionProposal javaProposal = super.createJavaCompletionProposal(proposal);
+			Image image = javaProposal.getImage();
+			String displayString = javaProposal.getDisplayString();
+			displayString = fixupDisplayString(displayString);
+			IContextInformation contextInformation = javaProposal.getContextInformation();
+			String additionalInfo = javaProposal.getAdditionalProposalInfo();
+			int relevance = javaProposal.getRelevance();
+			
+			boolean updateLengthOnValidate = true;
+			
+			jspProposal = new JSPCompletionProposal(completion, offset, length, positionAfter, image, displayString, contextInformation, additionalInfo, relevance, updateLengthOnValidate);
+		}
 		return jspProposal;
 	}
 
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPTemplateCompletionProcessor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPTemplateCompletionProcessor.java
index f3214dc..e835787 100644
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPTemplateCompletionProcessor.java
+++ b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPTemplateCompletionProcessor.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation 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
@@ -10,14 +10,24 @@
  *******************************************************************************/
 package org.eclipse.jst.jsp.ui.internal.contentassist;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.ITextSelection;
 import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.jface.text.Region;
 import org.eclipse.jface.text.contentassist.ICompletionProposal;
 import org.eclipse.jface.text.templates.ContextTypeRegistry;
 import org.eclipse.jface.text.templates.Template;
 import org.eclipse.jface.text.templates.TemplateCompletionProcessor;
 import org.eclipse.jface.text.templates.TemplateContext;
 import org.eclipse.jface.text.templates.TemplateContextType;
+import org.eclipse.jface.text.templates.TemplateException;
+import org.eclipse.jface.text.templates.TemplateProposal;
 import org.eclipse.jface.text.templates.persistence.TemplateStore;
 import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
 import org.eclipse.jst.jsp.ui.internal.editor.JSPEditorPluginImageHelper;
@@ -30,12 +40,90 @@
  * JSPTemplateCompletionProcessor is asked for content assist proposals, the
  * jsp content assist processor has already set the context type for
  * templates.
- * 
- * @plannedfor 1.0
  */
 class JSPTemplateCompletionProcessor extends TemplateCompletionProcessor {
+	private static final class ProposalComparator implements Comparator {
+		public int compare(Object o1, Object o2) {
+			return ((TemplateProposal) o2).getRelevance() - ((TemplateProposal) o1).getRelevance();
+		}
+	}
+
+	private static final Comparator fgProposalComparator = new ProposalComparator();
 	private String fContextTypeId = null;
 
+	/*
+	 * Copied from super class except instead of calling createContext(viewer,
+	 * region) call createContext(viewer, region, offset) instead
+	 */
+	public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) {
+
+		ITextSelection selection = (ITextSelection) viewer.getSelectionProvider().getSelection();
+
+		// adjust offset to end of normalized selection
+		if (selection.getOffset() == offset)
+			offset = selection.getOffset() + selection.getLength();
+
+		String prefix = extractPrefix(viewer, offset);
+		Region region = new Region(offset - prefix.length(), prefix.length());
+		TemplateContext context = createContext(viewer, region, offset);
+		if (context == null)
+			return new ICompletionProposal[0];
+
+		context.setVariable("selection", selection.getText()); // name of the
+																// selection
+																// variables
+																// {line,
+																// word}_selection
+																// //$NON-NLS-1$
+
+		Template[] templates = getTemplates(context.getContextType().getId());
+
+		List matches = new ArrayList();
+		for (int i = 0; i < templates.length; i++) {
+			Template template = templates[i];
+			try {
+				context.getContextType().validate(template.getPattern());
+			}
+			catch (TemplateException e) {
+				continue;
+			}
+			if (template.matches(prefix, context.getContextType().getId()))
+				matches.add(createProposal(template, context, (IRegion) region, getRelevance(template, prefix)));
+		}
+
+		Collections.sort(matches, fgProposalComparator);
+
+		return (ICompletionProposal[]) matches.toArray(new ICompletionProposal[matches.size()]);
+	}
+
+	/**
+	 * Creates a concrete template context for the given region in the
+	 * document. This involves finding out which context type is valid at the
+	 * given location, and then creating a context of this type. The default
+	 * implementation returns a <code>SmartReplaceTemplateContext</code> for
+	 * the context type at the given location. This takes the offset at which
+	 * content assist was invoked into consideration.
+	 * 
+	 * @param viewer
+	 *            the viewer for which the context is created
+	 * @param region
+	 *            the region into <code>document</code> for which the
+	 *            context is created
+	 * @param offset
+	 *            the original offset where content assist was invoked
+	 * @return a template context that can handle template insertion at the
+	 *         given location, or <code>null</code>
+	 */
+	private TemplateContext createContext(ITextViewer viewer, IRegion region, int offset) {
+		// pretty much same code as super.createContext except create SmartReplaceTemplateContext
+		TemplateContextType contextType = getContextType(viewer, region);
+		if (contextType != null) {
+			IDocument document = viewer.getDocument();
+			return new ReplaceNameTemplateContext(contextType, document, region.getOffset(), region.getLength(), offset);
+		}
+		return null;
+	}
+	
 	protected ICompletionProposal createProposal(Template template, TemplateContext context, IRegion region, int relevance) {
 		return new CustomTemplateProposal(template, context, region, getImage(template), relevance);
 	}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/ReplaceNameTemplateContext.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/ReplaceNameTemplateContext.java
new file mode 100644
index 0000000..1f4e9d1
--- /dev/null
+++ b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/ReplaceNameTemplateContext.java
@@ -0,0 +1,104 @@
+/*******************************************************************************
+ * Copyright (c) 2006 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.jsp.ui.internal.contentassist;
+
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.Position;
+import org.eclipse.jface.text.templates.DocumentTemplateContext;
+import org.eclipse.jface.text.templates.Template;
+import org.eclipse.jface.text.templates.TemplateBuffer;
+import org.eclipse.jface.text.templates.TemplateContextType;
+import org.eclipse.jface.text.templates.TemplateException;
+
+/**
+ * Just like DocumentTemplateContext except if an insert offset is passed in,
+ * during evaluation, the "prefix" before the template will be checked to see
+ * if it matches the template name. If so, overwrite the template name.
+ * Otherwise, just insert the template at the insert offset location (by not
+ * overwriting the prefix text)
+ */
+public class ReplaceNameTemplateContext extends DocumentTemplateContext {
+	private int fInsertOffset = -1;
+
+	/**
+	 * Creates a document template context.
+	 * 
+	 * @param type
+	 *            the context type
+	 * @param document
+	 *            the document this context applies to
+	 * @param offset
+	 *            the offset of the document region
+	 * @param length
+	 *            the length of the document region
+	 */
+	public ReplaceNameTemplateContext(TemplateContextType type, IDocument document, int offset, int length) {
+		this(type, document, new Position(offset, length));
+	}
+
+	/**
+	 * Creates a document template context. The supplied <code>Position</code>
+	 * will be queried to compute the <code>getStart</code> and
+	 * <code>getEnd</code> methods, which will therefore answer updated
+	 * position data if it is registered with the document.
+	 * 
+	 * @param type
+	 *            the context type
+	 * @param document
+	 *            the document this context applies to
+	 * @param position
+	 *            the position describing the area of the document which forms
+	 *            the template context
+	 * @since 3.1
+	 */
+	public ReplaceNameTemplateContext(TemplateContextType type, IDocument document, Position position) {
+		super(type, document, position);
+	}
+
+	/**
+	 * Creates a document template context.
+	 * 
+	 * @param type
+	 *            the context type
+	 * @param document
+	 *            the document this context applies to
+	 * @param offset
+	 *            the offset of the document region
+	 * @param length
+	 *            the length of the document region
+	 * @param insertOffset
+	 *            the offset of the document region where insert was
+	 *            originally requested
+	 */
+	public ReplaceNameTemplateContext(TemplateContextType type, IDocument document, int offset, int length, int insertOffset) {
+		this(type, document, new Position(offset, length));
+		fInsertOffset = insertOffset;
+	}
+
+	/*
+	 * @see org.eclipse.jface.text.templates.TemplateContext#evaluate(org.eclipse.jface.text.templates.Template)
+	 */
+	public TemplateBuffer evaluate(Template template) throws BadLocationException, TemplateException {
+		TemplateBuffer buffer = super.evaluate(template);
+		if (buffer != null) {
+			if (fInsertOffset > -1 && fInsertOffset > getStart()) {
+				String prefix = getDocument().get(getStart(), fInsertOffset - getStart());
+				if (!template.getName().startsWith(prefix)) {
+					// generate a new buffer that actually contains the
+					// text that was going to be overwritten
+					buffer = new TemplateBuffer(prefix + buffer.getString(), buffer.getVariables());
+				}
+			}
+		}
+		return buffer;
+	}
+}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/ui/JSPFilesPreferencePage.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/ui/JSPFilesPreferencePage.java
index f81c4e4..991a942 100644
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/ui/JSPFilesPreferencePage.java
+++ b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/ui/JSPFilesPreferencePage.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 IBM Corporation 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
@@ -10,13 +10,10 @@
  *******************************************************************************/
 package org.eclipse.jst.jsp.ui.internal.preferences.ui;
 
-import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.content.IContentType;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jst.jsp.core.internal.JSPCorePlugin;
 import org.eclipse.jst.jsp.core.internal.preferences.JSPCorePreferenceNames;
-import org.eclipse.jst.jsp.core.internal.provisional.contenttype.ContentTypeIdForJSP;
 import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
 import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
 import org.eclipse.jst.jsp.ui.internal.editor.IHelpContextIds;
@@ -55,7 +52,7 @@
 	protected Control createContents(Composite parent) {
 		Control c = super.createContents(parent);
 
-		Group g = createGroup((Composite) c, 1);
+		Group g = createGroup((Composite)c, 1);
 		g.setText(JSPUIMessages.JSPFilesPreferencePage_0);
 		fValidateFragments = createCheckBox(g, JSPUIMessages.JSPFilesPreferencePage_1);
 		boolean validateFragments = getModelPreferences().getBoolean(JSPCorePreferenceNames.VALIDATE_FRAGMENTS);
@@ -74,10 +71,6 @@
 		// no loading preferences
 	}
 
-	protected IContentType getContentType() {
-		return Platform.getContentTypeManager().getContentType(ContentTypeIdForJSP.ContentTypeID_JSP);
-	}
-
 	/*
 	 * (non-Javadoc)
 	 * 
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/HTMLPrinter.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/HTMLPrinter.java
index 25dfb44..031b108 100644
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/HTMLPrinter.java
+++ b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/HTMLPrinter.java
@@ -17,7 +17,6 @@
 
 import org.eclipse.jst.jsp.ui.internal.Logger;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTError;
 import org.eclipse.swt.graphics.RGB;
 import org.eclipse.swt.widgets.Display;
 
@@ -32,28 +31,34 @@
 	static RGB BG_COLOR_RGB = null;
 
 	static {
-		final Display display = Display.getDefault();
-		if (display != null && !display.isDisposed()) {
-			try {
+		// try to do in advance
+		getSystemBGColor();
+	}
+
+	private static RGB getSystemBGColor() {
+		RGB result = null;
+		if (BG_COLOR_RGB == null) {
+			final Display display = Display.getCurrent();
+			if (display != null && !display.isDisposed()) {
+
 				display.asyncExec(new Runnable() {
-					/*
-					 * @see java.lang.Runnable#run()
-					 */
 					public void run() {
-						BG_COLOR_RGB = display.getSystemColor(SWT.COLOR_INFO_BACKGROUND).getRGB();
+						if (display != null && !display.isDisposed()) {
+							BG_COLOR_RGB = display.getSystemColor(SWT.COLOR_INFO_BACKGROUND).getRGB();
+						}
 					}
 				});
-			}
-			catch (SWTError err) {
-				// see: https://bugs.eclipse.org/bugs/show_bug.cgi?id=45294
-				if (err.code != SWT.ERROR_DEVICE_DISPOSED)
-					throw err;
+
 			}
 		}
+		else {
+			result = BG_COLOR_RGB;
+		}
+		return result;
 	}
 
 	private HTMLPrinter() {
-		// nothing
+		super();
 	}
 
 	private static String replace(String text, char c, String s) {
@@ -77,8 +82,6 @@
 	}
 
 	public static String convertToHTMLContent(String content) {
-		content = replace(content, '&', "&amp;"); //$NON-NLS-1$
-		content = replace(content, '"', "&quot;"); //$NON-NLS-1$
 		content = replace(content, '<', "&lt;"); //$NON-NLS-1$
 		return replace(content, '>', "&gt;"); //$NON-NLS-1$
 	}
@@ -98,7 +101,7 @@
 		}
 		catch (IOException x) {
 			// never expected
-			Logger.log(Logger.WARNING_DEBUG, x.getMessage(), x);
+			Logger.logException(x);
 		}
 
 		return null;
@@ -156,18 +159,22 @@
 	}
 
 	public static void insertPageProlog(StringBuffer buffer, int position) {
-		insertPageProlog(buffer, position, getBgColor());
+		insertPageProlog(buffer, position, getBgColor()); //$NON-NLS-1$
 	}
 
 	public static void insertPageProlog(StringBuffer buffer, int position, URL styleSheetURL) {
-		insertPageProlog(buffer, position, getBgColor(), styleSheetURL);
+		insertPageProlog(buffer, position, getBgColor(), styleSheetURL); //$NON-NLS-1$
 	}
 
-	private static RGB getBgColor() {
-		if (BG_COLOR_RGB != null)
-			return BG_COLOR_RGB;
-		// RGB value of info bg color on WindowsXP
-		return new RGB(255, 255, 225);
+	static RGB getBgColor() {
+		RGB result = getSystemBGColor();
+		if (result == null) {
+			// use RGB value of default info bg color
+			// on WindowsXP
+			result = new RGB(255, 255, 225);
+		}
+		return result;
+
 	}
 
 	public static void addPageProlog(StringBuffer buffer) {
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPInformationProvider.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPInformationProvider.java
deleted file mode 100644
index b2f680b..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPInformationProvider.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.taginfo;
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextHover;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.information.IInformationProvider;
-import org.eclipse.jface.text.information.IInformationProviderExtension;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-
-/**
- * Provides context help for JSP tags (Show tooltip description)
- */
-public class JSPInformationProvider implements IInformationProvider, IInformationProviderExtension {
-	private ITextHover fTextHover = null;
-
-	public JSPInformationProvider() {
-		fTextHover = SSEUIPlugin.getDefault().getTextHoverManager().createBestMatchHover(new JSPTagInfoHoverProcessor());
-	}
-
-	public IRegion getSubject(ITextViewer textViewer, int offset) {
-		return fTextHover.getHoverRegion(textViewer, offset);
-	}
-
-	public String getInformation(ITextViewer textViewer, IRegion subject) {
-		return (String) getInformation2(textViewer, subject);
-	}
-
-	public Object getInformation2(ITextViewer textViewer, IRegion subject) {
-		return fTextHover.getHoverInfo(textViewer, subject);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPJavaJavadocHoverProcessor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPJavaJavadocHoverProcessor.java
index 1c900cc..7ee1293 100644
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPJavaJavadocHoverProcessor.java
+++ b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPJavaJavadocHoverProcessor.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 IBM Corporation 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
@@ -18,84 +18,91 @@
 import org.eclipse.jdt.ui.JavaElementLabels;
 import org.eclipse.jdt.ui.JavadocContentAccess;
 import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.ITextHover;
 import org.eclipse.jface.text.ITextViewer;
 import org.eclipse.jst.jsp.core.internal.java.IJSPTranslation;
 import org.eclipse.jst.jsp.core.internal.java.JSPTranslation;
 import org.eclipse.jst.jsp.core.internal.java.JSPTranslationAdapter;
 import org.eclipse.wst.sse.core.internal.provisional.StructuredModelManager;
-import org.eclipse.wst.sse.ui.internal.taginfo.AbstractHoverProcessor;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
 
 /**
  * Provides javadoc hover help documentation for java code inside JSPs
  */
-public class JSPJavaJavadocHoverProcessor extends AbstractHoverProcessor {
-	/*
-	 * Bulk of the work was copied from
-	 * org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover
-	 */
-	private final long LABEL_FLAGS = JavaElementLabels.ALL_FULLY_QUALIFIED | JavaElementLabels.M_PRE_RETURNTYPE | JavaElementLabels.M_PARAMETER_TYPES | JavaElementLabels.M_PARAMETER_NAMES | JavaElementLabels.M_EXCEPTIONS | JavaElementLabels.F_PRE_TYPE_SIGNATURE | JavaElementLabels.M_PRE_TYPE_PARAMETERS | JavaElementLabels.T_TYPE_PARAMETERS | JavaElementLabels.USE_RESOLVED;
-	private final long LOCAL_VARIABLE_FLAGS = LABEL_FLAGS & ~JavaElementLabels.F_FULLY_QUALIFIED | JavaElementLabels.F_POST_QUALIFIED;
-
+public class JSPJavaJavadocHoverProcessor implements ITextHover {
+	private final long LABEL_FLAGS=  JavaElementLabels.ALL_FULLY_QUALIFIED
+	| JavaElementLabels.M_PRE_RETURNTYPE | JavaElementLabels.M_PARAMETER_TYPES | JavaElementLabels.M_PARAMETER_NAMES | JavaElementLabels.M_EXCEPTIONS 
+	| JavaElementLabels.F_PRE_TYPE_SIGNATURE;
+	
+	private String getInfoText(IJavaElement member) {
+		String label= JavaElementLabels.getElementLabel(member, LABEL_FLAGS);
+		StringBuffer buf= new StringBuffer();
+		for (int i= 0; i < label.length(); i++) {
+			char ch= label.charAt(i);
+			if (ch == '<') {
+				buf.append("&lt;"); //$NON-NLS-1$
+			} else if (ch == '>') {
+				buf.append("&gt;"); //$NON-NLS-1$
+			} else {
+				buf.append(ch);
+			}
+		}
+		return buf.toString();
+	}
+	
 	private String getHoverInfo(IJavaElement[] result) {
-		StringBuffer buffer = new StringBuffer();
-		int nResults = result.length;
+		StringBuffer buffer= new StringBuffer();
+		int nResults= result.length;
 		if (nResults == 0)
 			return null;
-
+		
 		if (nResults > 1) {
-
-			for (int i = 0; i < result.length; i++) {
+			
+			for (int i= 0; i < result.length; i++) {
 				HTMLPrinter.startBulletList(buffer);
-				IJavaElement curr = result[i];
+				IJavaElement curr= result[i];
 				if (curr instanceof IMember || curr.getElementType() == IJavaElement.LOCAL_VARIABLE)
 					HTMLPrinter.addBullet(buffer, getInfoText(curr));
 				HTMLPrinter.endBulletList(buffer);
 			}
-
-		}
-		else {
-
-			IJavaElement curr = result[0];
+			
+		} else {
+			
+			IJavaElement curr= result[0];
 			if (curr instanceof IMember) {
-				IMember member = (IMember) curr;
+				IMember member= (IMember) curr;
 				HTMLPrinter.addSmallHeader(buffer, getInfoText(member));
 				Reader reader;
 				try {
-					reader = JavadocContentAccess.getHTMLContentReader(member, true, true);
-				}
-				catch (JavaModelException ex) {
+					reader= JavadocContentAccess.getHTMLContentReader(member, true);
+				} catch (JavaModelException ex) {
 					return null;
 				}
 				if (reader != null) {
 					HTMLPrinter.addParagraph(buffer, reader);
 				}
-			}
-			else if (curr.getElementType() == IJavaElement.LOCAL_VARIABLE || curr.getElementType() == IJavaElement.TYPE_PARAMETER)
+			} else if (curr.getElementType() == IJavaElement.LOCAL_VARIABLE)
 				HTMLPrinter.addSmallHeader(buffer, getInfoText(curr));
 		}
-
+		
 		if (buffer.length() > 0) {
 			HTMLPrinter.insertPageProlog(buffer, 0);
 			HTMLPrinter.addPageEpilog(buffer);
 			return buffer.toString();
 		}
-
+		
 		return null;
 	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.ITextHover#getHoverInfo(org.eclipse.jface.text.ITextViewer,
-	 *      org.eclipse.jface.text.IRegion)
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.text.ITextHover#getHoverInfo(org.eclipse.jface.text.ITextViewer, org.eclipse.jface.text.IRegion)
 	 */
 	public String getHoverInfo(ITextViewer textViewer, IRegion hoverRegion) {
 		// get JSP translation object for this viewer's document
 		IDOMModel xmlModel = (IDOMModel) StructuredModelManager.getModelManager().getExistingModelForRead(textViewer.getDocument());
 		try {
-			if (xmlModel != null) {
+			if(xmlModel != null) {
 				IDOMDocument xmlDoc = xmlModel.getDocument();
 				JSPTranslationAdapter adapter = (JSPTranslationAdapter) xmlDoc.getAdapterFor(IJSPTranslation.class);
 				if (adapter != null) {
@@ -106,38 +113,17 @@
 			}
 		}
 		finally {
-			if (xmlModel != null)
+			if(xmlModel != null) 
 				xmlModel.releaseFromRead();
 		}
 		return null;
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.ITextHover#getHoverRegion(org.eclipse.jface.text.ITextViewer,
-	 *      int)
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.text.ITextHover#getHoverRegion(org.eclipse.jface.text.ITextViewer, int)
 	 */
 	public IRegion getHoverRegion(ITextViewer textViewer, int offset) {
 		return JavaWordFinder.findWord(textViewer.getDocument(), offset);
 	}
 
-	private String getInfoText(IJavaElement member) {
-		long flags = member.getElementType() == IJavaElement.LOCAL_VARIABLE ? LOCAL_VARIABLE_FLAGS : LABEL_FLAGS;
-		String label = JavaElementLabels.getElementLabel(member, flags);
-		StringBuffer buf = new StringBuffer();
-		for (int i = 0; i < label.length(); i++) {
-			char ch = label.charAt(i);
-			if (ch == '<') {
-				buf.append("&lt;"); //$NON-NLS-1$
-			}
-			else if (ch == '>') {
-				buf.append("&gt;"); //$NON-NLS-1$
-			}
-			else {
-				buf.append(ch);
-			}
-		}
-		return buf.toString();
-	}
 }
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPJavaJavadocInformationProvider.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPJavaJavadocInformationProvider.java
deleted file mode 100644
index 190f5aa..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPJavaJavadocInformationProvider.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.taginfo;
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextHover;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.information.IInformationProvider;
-import org.eclipse.jface.text.information.IInformationProviderExtension;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-
-/**
- * Provides javadoc context information for java code inside JSPs (Shows
- * tooltip description)
- */
-public class JSPJavaJavadocInformationProvider implements IInformationProvider, IInformationProviderExtension {
-	private ITextHover fTextHover = null;
-
-	public JSPJavaJavadocInformationProvider() {
-		fTextHover = SSEUIPlugin.getDefault().getTextHoverManager().createBestMatchHover(new JSPJavaJavadocHoverProcessor());
-	}
-
-	public IRegion getSubject(ITextViewer textViewer, int offset) {
-		return fTextHover.getHoverRegion(textViewer, offset);
-	}
-
-	public String getInformation(ITextViewer textViewer, IRegion subject) {
-		return (String) getInformation2(textViewer, subject);
-	}
-
-	public Object getInformation2(ITextViewer textViewer, IRegion subject) {
-		return fTextHover.getHoverInfo(textViewer, subject);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/wizard/NewJSPWizard.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/wizard/NewJSPWizard.java
index 969558c..c96288e 100644
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/wizard/NewJSPWizard.java
+++ b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/wizard/NewJSPWizard.java
@@ -1,13 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
 package org.eclipse.jst.jsp.ui.internal.wizard;
 
 import java.io.ByteArrayInputStream;
@@ -18,11 +8,8 @@
 import java.util.List;
 
 import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Preferences;
 import org.eclipse.core.runtime.content.IContentType;
@@ -31,7 +18,6 @@
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.wizard.Wizard;
 import org.eclipse.jst.jsp.core.internal.JSPCorePlugin;
-import org.eclipse.jst.jsp.core.internal.preferences.JSPCorePreferenceNames;
 import org.eclipse.jst.jsp.core.internal.provisional.contenttype.ContentTypeIdForJSP;
 import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
 import org.eclipse.jst.jsp.ui.internal.Logger;
@@ -51,46 +37,16 @@
 	private WizardNewFileCreationPage fNewFilePage;
 	private NewJSPTemplatesWizardPage fNewFileTemplatesPage;
 	private IStructuredSelection fSelection;
-	private IContentType fContentType;
 	private List fValidExtensions = null;
 
 	/**
-	 * Adds default extension to the filename
-	 * 
-	 * @param filename
-	 * @return
-	 */
-	String addDefaultExtension(String filename) {
-		StringBuffer newFileName = new StringBuffer(filename);
-
-		Preferences preference = JSPCorePlugin.getDefault().getPluginPreferences();
-		String ext = preference.getString(JSPCorePreferenceNames.DEFAULT_EXTENSION);
-
-		newFileName.append("."); //$NON-NLS-1$
-		newFileName.append(ext);
-
-		return newFileName.toString();
-	}
-
-	/**
-	 * Get content type associated with this new file wizard
-	 * 
-	 * @return IContentType
-	 */
-	IContentType getContentType() {
-		if (fContentType == null)
-			fContentType = Platform.getContentTypeManager().getContentType(ContentTypeIdForJSP.ContentTypeID_JSP);
-		return fContentType;
-	}
-
-	/**
 	 * Get list of valid extensions for JSP Content type
 	 * 
 	 * @return
 	 */
 	List getValidExtensions() {
 		if (fValidExtensions == null) {
-			IContentType type = getContentType();
+			IContentType type = Platform.getContentTypeManager().getContentType(ContentTypeIdForJSP.ContentTypeID_JSP);
 			fValidExtensions = new ArrayList(Arrays.asList(type.getFileSpecs(IContentType.FILE_EXTENSION_SPEC)));
 		}
 		return fValidExtensions;
@@ -99,33 +55,12 @@
 	public void addPages() {
 		fNewFilePage = new WizardNewFileCreationPage("JSPWizardNewFileCreationPage", new StructuredSelection(IDE.computeSelectedResources(fSelection))) { //$NON-NLS-1$
 			protected boolean validatePage() {
-				IContentType type = getContentType();
-				String fileName = getFileName();
-				// check that filename does not contain invalid extension
-				if ((fileName.lastIndexOf('.') != -1) && (!type.isAssociatedWith(fileName))) {
+				IPath handlePath = new Path(getFileName());
+				String extension = handlePath.getFileExtension();
+				if (extension == null || !getValidExtensions().contains(extension)) {
 					setErrorMessage(NLS.bind(JSPUIMessages._ERROR_FILENAME_MUST_END_JSP, getValidExtensions().toString()));
 					return false;
 				}
-				// no file extension specified so check adding default
-				// extension doesn't equal a file that already exists
-				if (fileName.lastIndexOf('.') == -1) {
-					String newFileName = addDefaultExtension(fileName);
-					IPath resourcePath = getContainerFullPath().append(newFileName);
-
-					IWorkspace workspace = ResourcesPlugin.getWorkspace();
-					IStatus result = workspace.validatePath(resourcePath.toString(), IResource.FOLDER);
-					if (!result.isOK()) {
-						// path invalid
-						setErrorMessage(result.getMessage());
-						return false;
-					}
-
-					if ((workspace.getRoot().getFolder(resourcePath).exists() || workspace.getRoot().getFile(resourcePath).exists())) {
-						setErrorMessage(JSPUIMessages.ResourceGroup_nameExists);
-						return false;
-					}
-				}
-
 				setErrorMessage(null);
 				return super.validatePage();
 			}
@@ -142,7 +77,7 @@
 	public void init(IWorkbench aWorkbench, IStructuredSelection aSelection) {
 		fSelection = aSelection;
 		setWindowTitle(JSPUIMessages._UI_WIZARD_NEW_TITLE);
-
+		
 		ImageDescriptor descriptor = JSPEditorPluginImageHelper.getInstance().getImageDescriptor(JSPEditorPluginImages.IMG_OBJ_WIZBAN_NEWJSPFILE);
 		setDefaultPageImageDescriptor(descriptor);
 	}
@@ -164,60 +99,43 @@
 	}
 
 	public boolean performFinish() {
-		boolean performedOK = false;
-
 		// save user options for next use
 		fNewFileTemplatesPage.saveLastSavedPreferences();
 
-		// no file extension specified so add default extension
-		String fileName = fNewFilePage.getFileName();
-		if (fileName.lastIndexOf('.') == -1) {
-			String newFileName = addDefaultExtension(fileName);
-			fNewFilePage.setFileName(newFileName);
-		}
-
 		// create a new empty file
 		IFile file = fNewFilePage.createNewFile();
 
-		// if there was problem with creating file, it will be null, so make
-		// sure to check
-		if (file != null) {
-			// put template contents into file
-			String templateString = fNewFileTemplatesPage.getTemplateString();
-			if (templateString != null) {
-				// determine the encoding for the new file
-				Preferences preference = JSPCorePlugin.getDefault().getPluginPreferences();
-				String charSet = preference.getString(CommonEncodingPreferenceNames.OUTPUT_CODESET);
+		// put template contents into file
+		String templateString = fNewFileTemplatesPage.getTemplateString();
+		if (templateString != null) {
+			// determine the encoding for the new file
+			Preferences preference = JSPCorePlugin.getDefault().getPluginPreferences();
+			String charSet = preference.getString(CommonEncodingPreferenceNames.OUTPUT_CODESET);
 
-				try {
-					ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
-					OutputStreamWriter outputStreamWriter = null;
-					if (charSet == null || charSet.trim().equals("")) { //$NON-NLS-1$
-						// just use default encoding
-						outputStreamWriter = new OutputStreamWriter(outputStream);
-					}
-					else {
-						outputStreamWriter = new OutputStreamWriter(outputStream, charSet);
-					}
-					outputStreamWriter.write(templateString);
-					outputStreamWriter.flush();
-					outputStreamWriter.close();
-					ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
-					file.setContents(inputStream, true, false, null);
-					inputStream.close();
+			try {
+				ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+				OutputStreamWriter outputStreamWriter = null;
+				if (charSet == null || charSet.trim().equals("")) { //$NON-NLS-1$
+					// just use default encoding
+					outputStreamWriter = new OutputStreamWriter(outputStream);
+				} else {
+					outputStreamWriter = new OutputStreamWriter(outputStream, charSet);
 				}
-				catch (Exception e) {
-					Logger.log(Logger.WARNING_DEBUG, "Could not create contents for new JSP file", e); //$NON-NLS-1$
-				}
+				outputStreamWriter.write(templateString);
+				outputStreamWriter.flush();
+				outputStreamWriter.close();
+				ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
+				file.setContents(inputStream, true, false, null);
+				inputStream.close();
 			}
-
-			// open the file in editor
-			openEditor(file);
-
-			// everything's fine
-			performedOK = true;
+			catch (Exception e) {
+				Logger.log(Logger.WARNING_DEBUG, "Could not create contents for new JSP file", e); //$NON-NLS-1$
+			}
 		}
-		return performedOK;
+
+		// open the file in editor
+		openEditor(file);
+		return true;
 	}
 
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.css.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.css.core/META-INF/MANIFEST.MF
index f2026a9..b14badc 100644
--- a/bundles/org.eclipse.wst.css.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.css.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.css.core; singleton:=true
-Bundle-Version: 1.0.100.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.wst.css.core.internal.CSSCorePlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSelectorListImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSelectorListImpl.java
index de4a0bc..9c5c7ee 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSelectorListImpl.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSelectorListImpl.java
@@ -124,7 +124,7 @@
 	 */
 	public boolean match(Element element, String pseudoName) {
 		int nSelectors = getLength();
-		selectorListLoop : for (int iSelector = 0; iSelector < nSelectors; iSelector++) {
+		for (int iSelector = 0; iSelector < nSelectors; iSelector++) {
 			// Check each Selector Lists
 			ICSSSelector selector = getSelector(iSelector);
 			if (selector.match(element, pseudoName))
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceInitializer.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceInitializer.java
index 2056288..fc3997d 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceInitializer.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceInitializer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 IBM Corporation 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
@@ -44,11 +44,7 @@
 		}
 		node.put(CommonEncodingPreferenceNames.OUTPUT_CODESET, defaultEnc);
 		node.put(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$
-
-		// this could be made smarter by actually looking up the content
-		// type's valid extensions
-		node.put(CSSCorePreferenceNames.DEFAULT_EXTENSION, "css"); //$NON-NLS-1$
-
+		
 		// additional css core preferences
 		node.putInt(CSSCorePreferenceNames.FORMAT_PROP_PRE_DELIM, 0);
 		node.putInt(CSSCorePreferenceNames.FORMAT_PROP_POST_DELIM, 1);
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceNames.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceNames.java
index d3fa08d..130389a 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceNames.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceNames.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 IBM Corporation 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
@@ -39,15 +39,6 @@
 	public static final String CLEANUP_CASE_SELECTOR = "cleanupSelectorCase"; //$NON-NLS-1$
 
 	/**
-	 * The default extension to use when none is specified in the New CSS File
-	 * Wizard.
-	 * <p>
-	 * Value is of type <code>String</code>.
-	 * </p>
-	 */
-	public static final String DEFAULT_EXTENSION = "defaultExtension"; //$NON-NLS-1$
-	
-	/**
 	 * The maximum width of a line before a line split is needed.
 	 * <p>
 	 * Value is of type <code>Integer</code>.
diff --git a/bundles/org.eclipse.wst.css.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.css.ui/META-INF/MANIFEST.MF
index 896921f..06bc72a 100644
--- a/bundles/org.eclipse.wst.css.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.css.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.css.ui; singleton:=true
-Bundle-Version: 1.0.100.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.wst.css.ui.internal.CSSUIPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIMessages.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIMessages.java
index c72d102..001bcc9 100644
--- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIMessages.java
+++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIMessages.java
@@ -88,7 +88,6 @@
 	public static String StructureSelectPrevious_tooltip;
 	public static String StructureSelectPrevious_description;
 	public static String Creating_files_encoding;
-	public static String ResourceGroup_nameExists;
 	public static String NewCSSTemplatesWizardPage_0;
 	public static String NewCSSTemplatesWizardPage_1;
 	public static String NewCSSTemplatesWizardPage_2;
diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIPluginResources.properties b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIPluginResources.properties
index f686435..dfa88c5 100644
--- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIPluginResources.properties
+++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIPluginResources.properties
@@ -55,7 +55,7 @@
 _UI_WIZARD_NEW_TITLE = New Cascading Style Sheet
 _UI_WIZARD_NEW_HEADING = Cascading Style Sheet
 _UI_WIZARD_NEW_DESCRIPTION = Create a new CSS file.
-_ERROR_FILENAME_MUST_END_CSS = The file name must end in one of the following extensions {0}.
+_ERROR_FILENAME_MUST_END_CSS = The file name must end in .css
 #
 Title_InvalidValue=Invalid Value
 Message_InvalidValue=Invalid property value.
@@ -94,7 +94,6 @@
 StructureSelectPrevious_description=Expand selection to include previous sibling
 ##
 Creating_files_encoding=Creating files encoding preference
-ResourceGroup_nameExists = The same name already exists.
 NewCSSTemplatesWizardPage_0=Select CSS Template
 NewCSSTemplatesWizardPage_1=Select a template as initial content in the CSS page.
 NewCSSTemplatesWizardPage_2=Name
diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/ui/CSSFilesPreferencePage.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/ui/CSSFilesPreferencePage.java
index ab01fe8..36f3e38 100644
--- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/ui/CSSFilesPreferencePage.java
+++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/ui/CSSFilesPreferencePage.java
@@ -8,15 +8,12 @@
  ****************************************************************************/
 package org.eclipse.wst.css.ui.internal.preferences.ui;
 
-import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.content.IContentType;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.wst.css.core.internal.CSSCorePlugin;
-import org.eclipse.wst.css.core.internal.provisional.contenttype.ContentTypeIdForCSS;
 import org.eclipse.wst.css.ui.internal.CSSUIPlugin;
 import org.eclipse.wst.css.ui.internal.editor.IHelpContextIds;
 import org.eclipse.wst.xml.ui.internal.preferences.XMLFilesPreferencePage;
@@ -39,8 +36,4 @@
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(c, IHelpContextIds.CSS_PREFWEBX_FILES_HELPID);
 		return c;
 	}
-
-	protected IContentType getContentType() {
-		return Platform.getContentTypeManager().getContentType(ContentTypeIdForCSS.ContentTypeID_CSS);
-	}
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/wizard/NewCSSWizard.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/wizard/NewCSSWizard.java
index d77ef60..dad0429 100644
--- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/wizard/NewCSSWizard.java
+++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/wizard/NewCSSWizard.java
@@ -1,14 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
 package org.eclipse.wst.css.ui.internal.wizard;
 
 import java.io.ByteArrayInputStream;
@@ -19,11 +8,8 @@
 import java.util.List;
 
 import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Preferences;
 import org.eclipse.core.runtime.content.IContentType;
@@ -31,7 +17,6 @@
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.osgi.util.NLS;
 import org.eclipse.ui.INewWizard;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPage;
@@ -40,7 +25,6 @@
 import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
 import org.eclipse.ui.ide.IDE;
 import org.eclipse.wst.css.core.internal.CSSCorePlugin;
-import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.provisional.contenttype.ContentTypeIdForCSS;
 import org.eclipse.wst.css.ui.internal.CSSUIMessages;
 import org.eclipse.wst.css.ui.internal.Logger;
@@ -52,80 +36,30 @@
 	private WizardNewFileCreationPage fNewFilePage;
 	private NewCSSTemplatesWizardPage fNewFileTemplatesPage;
 	private IStructuredSelection fSelection;
-	private IContentType fContentType;
 	private List fValidExtensions = null;
 
 	/**
-	 * Adds default extension to the filename
-	 * 
-	 * @param filename
-	 * @return
-	 */
-	String addDefaultExtension(String filename) {
-		StringBuffer newFileName = new StringBuffer(filename);
-
-		Preferences preference = CSSCorePlugin.getDefault().getPluginPreferences();
-		String ext = preference.getString(CSSCorePreferenceNames.DEFAULT_EXTENSION);
-
-		newFileName.append("."); //$NON-NLS-1$
-		newFileName.append(ext);
-
-		return newFileName.toString();
-	}
-
-	/**
-	 * Get content type associated with this new file wizard
-	 * 
-	 * @return IContentType
-	 */
-	IContentType getContentType() {
-		if (fContentType == null)
-			fContentType = Platform.getContentTypeManager().getContentType(ContentTypeIdForCSS.ContentTypeID_CSS);
-		return fContentType;
-	}
-
-	/**
 	 * Get list of valid extensions for CSS Content type
 	 * 
 	 * @return
 	 */
 	List getValidExtensions() {
 		if (fValidExtensions == null) {
-			IContentType type = getContentType();
+			IContentType type = Platform.getContentTypeManager().getContentType(ContentTypeIdForCSS.ContentTypeID_CSS);
 			fValidExtensions = new ArrayList(Arrays.asList(type.getFileSpecs(IContentType.FILE_EXTENSION_SPEC)));
 		}
 		return fValidExtensions;
 	}
-
+	
 	public void addPages() {
 		fNewFilePage = new WizardNewFileCreationPage("CSSWizardNewFileCreationPage", new StructuredSelection(IDE.computeSelectedResources(fSelection))) { //$NON-NLS-1$
 			protected boolean validatePage() {
-				IContentType type = getContentType();
-				String fileName = getFileName();
-				// check that filename does not contain invalid extension
-				if ((fileName.lastIndexOf('.') != -1) && (!type.isAssociatedWith(fileName))) {
-					setErrorMessage(NLS.bind(CSSUIMessages._ERROR_FILENAME_MUST_END_CSS, getValidExtensions().toString()));
+				IPath handlePath = new Path(getFileName());
+				String extension = handlePath.getFileExtension();
+				if (extension == null || !extension.equalsIgnoreCase("css")) { //$NON-NLS-1$
+					setErrorMessage(CSSUIMessages._ERROR_FILENAME_MUST_END_CSS); //$NON-NLS-1$
 					return false;
 				}
-				// no file extension specified so check adding default
-				// extension doesn't equal a file that already exists
-				if (fileName.lastIndexOf('.') == -1) {
-					String newFileName = addDefaultExtension(fileName);
-					IPath resourcePath = getContainerFullPath().append(newFileName);
-
-					IWorkspace workspace = ResourcesPlugin.getWorkspace();
-					IStatus result = workspace.validatePath(resourcePath.toString(), IResource.FOLDER);
-					if (!result.isOK()) {
-						// path invalid
-						setErrorMessage(result.getMessage());
-						return false;
-					}
-
-					if ((workspace.getRoot().getFolder(resourcePath).exists() || workspace.getRoot().getFile(resourcePath).exists())) {
-						setErrorMessage(CSSUIMessages.ResourceGroup_nameExists);
-						return false;
-					}
-				}
 				setErrorMessage(null);
 				return super.validatePage();
 			}
@@ -134,7 +68,7 @@
 		fNewFilePage.setDescription(CSSUIMessages._UI_WIZARD_NEW_DESCRIPTION); //$NON-NLS-1$
 
 		addPage(fNewFilePage);
-
+		
 		fNewFileTemplatesPage = new NewCSSTemplatesWizardPage();
 		addPage(fNewFileTemplatesPage);
 	}
@@ -163,59 +97,42 @@
 	}
 
 	public boolean performFinish() {
-		boolean performedOK = false;
-
 		// save user options for next use
 		fNewFileTemplatesPage.saveLastSavedPreferences();
-
-		// no file extension specified so add default extension
-		String fileName = fNewFilePage.getFileName();
-		if (fileName.lastIndexOf('.') == -1) {
-			String newFileName = addDefaultExtension(fileName);
-			fNewFilePage.setFileName(newFileName);
-		}
-
-		// create a new empty file
+		
 		IFile file = fNewFilePage.createNewFile();
+		
+		// put template contents into file
+		String templateString = fNewFileTemplatesPage.getTemplateString();
+		if (templateString != null) {
+			// determine the encoding for the new file
+			Preferences preference = CSSCorePlugin.getDefault().getPluginPreferences();
+			String charSet = preference.getString(CommonEncodingPreferenceNames.OUTPUT_CODESET);
 
-		// if there was problem with creating file, it will be null, so make
-		// sure to check
-		if (file != null) {
-			// put template contents into file
-			String templateString = fNewFileTemplatesPage.getTemplateString();
-			if (templateString != null) {
-				// determine the encoding for the new file
-				Preferences preference = CSSCorePlugin.getDefault().getPluginPreferences();
-				String charSet = preference.getString(CommonEncodingPreferenceNames.OUTPUT_CODESET);
-
-				try {
-					ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
-					OutputStreamWriter outputStreamWriter = null;
-					if (charSet == null || charSet.trim().equals("")) { //$NON-NLS-1$
-						// just use default encoding
-						outputStreamWriter = new OutputStreamWriter(outputStream);
-					}
-					else {
-						outputStreamWriter = new OutputStreamWriter(outputStream, charSet);
-					}
-					outputStreamWriter.write(templateString);
-					outputStreamWriter.flush();
-					outputStreamWriter.close();
-					ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
-					file.setContents(inputStream, true, false, null);
-					inputStream.close();
+			try {
+				ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+				OutputStreamWriter outputStreamWriter = null;
+				if (charSet == null || charSet.trim().equals("")) { //$NON-NLS-1$
+					// just use default encoding
+					outputStreamWriter = new OutputStreamWriter(outputStream);
+				} else {
+					outputStreamWriter = new OutputStreamWriter(outputStream, charSet);
 				}
-				catch (Exception e) {
-					Logger.log(Logger.WARNING_DEBUG, "Could not create contents for new CSS file", e); //$NON-NLS-1$
-				}
+				outputStreamWriter.write(templateString);
+				outputStreamWriter.flush();
+				outputStreamWriter.close();
+				ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
+				file.setContents(inputStream, true, false, null);
+				inputStream.close();
 			}
-			// open the file in editor
-			openEditor(file);
-
-			// everything's fine
-			performedOK = true;
+			catch (Exception e) {
+				Logger.log(Logger.WARNING_DEBUG, "Could not create contents for new CSS file", e); //$NON-NLS-1$
+			}
 		}
-		return performedOK;
+
+		// open the file in editor
+		openEditor(file);
+		return true;
 	}
 
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.dtd.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.dtd.core/META-INF/MANIFEST.MF
index baa7e1c..3984f31 100644
--- a/bundles/org.eclipse.wst.dtd.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.dtd.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.dtd.core; singleton:=true
-Bundle-Version: 1.0.100.qualifier
+Bundle-Version: 1.0.1.qualifier
 Bundle-Activator: org.eclipse.wst.dtd.core.internal.DTDCorePlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -17,7 +17,6 @@
  org.eclipse.wst.dtd.core.internal.event,
  org.eclipse.wst.dtd.core.internal.modelhandler,
  org.eclipse.wst.dtd.core.internal.parser,
-  org.eclipse.wst.dtd.core.internal.preferences,
  org.eclipse.wst.dtd.core.internal.provisional.contenttype,
  org.eclipse.wst.dtd.core.internal.provisional.document,
  org.eclipse.wst.dtd.core.internal.provisional.text,
@@ -37,4 +36,4 @@
  org.eclipse.wst.sse.core,
  org.eclipse.wst.xml.core,
  org.eclipse.wst.validation
-Eclipse-LazyStart: true
+Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.wst.dtd.core/plugin.xml b/bundles/org.eclipse.wst.dtd.core/plugin.xml
index 1b3f04e..cc6c541 100644
--- a/bundles/org.eclipse.wst.dtd.core/plugin.xml
+++ b/bundles/org.eclipse.wst.dtd.core/plugin.xml
@@ -79,9 +79,4 @@
 		</factory>
 	</extension>
 
-	<!-- initialize dtd core preferences -->
-	<extension point="org.eclipse.core.runtime.preferences">
-		<initializer
-			class="org.eclipse.wst.dtd.core.internal.preferences.DTDCorePreferenceInitializer" />
-	</extension>
 </plugin>
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/preferences/DTDCorePreferenceInitializer.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/preferences/DTDCorePreferenceInitializer.java
deleted file mode 100644
index c3fb65a..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/preferences/DTDCorePreferenceInitializer.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.internal.preferences;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-
-/**
- * Sets default values for DTD Core preferences
- */
-public class DTDCorePreferenceInitializer extends AbstractPreferenceInitializer {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-	 */
-	public void initializeDefaultPreferences() {
-		IEclipsePreferences node = new DefaultScope().getNode(DTDCorePlugin.getInstance().getBundle().getSymbolicName());
-
-		// this could be made smarter by actually looking up the content
-		// type's valid extensions
-		node.put(DTDCorePreferenceNames.DEFAULT_EXTENSION, "dtd"); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/preferences/DTDCorePreferenceNames.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/preferences/DTDCorePreferenceNames.java
deleted file mode 100644
index d348e0f..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/preferences/DTDCorePreferenceNames.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.dtd.core.internal.preferences;
-
-/**
- * Common preference keys used by DTD core
- * 
- * @plannedfor 1.0
- */
-public class DTDCorePreferenceNames {
-	private DTDCorePreferenceNames() {
-		// empty private constructor so users cannot instantiate class
-	}
-
-	/**
-	 * The default extension to use when none is specified in the New File
-	 * Wizard.
-	 * <p>
-	 * Value is of type <code>String</code>.
-	 * </p>
-	 */
-	public static final String DEFAULT_EXTENSION = "defaultExtension"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.dtd.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.dtd.ui/META-INF/MANIFEST.MF
index 366e1aa..3dc3da7 100644
--- a/bundles/org.eclipse.wst.dtd.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.dtd.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.dtd.ui; singleton:=true
-Bundle-Version: 1.0.100.qualifier
+Bundle-Version: 1.0.1.qualifier
 Bundle-Activator: org.eclipse.wst.dtd.ui.internal.DTDUIPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/internal/DTDUIMessages.java b/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/internal/DTDUIMessages.java
index d44e604..80eee08 100644
--- a/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/internal/DTDUIMessages.java
+++ b/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/internal/DTDUIMessages.java
@@ -36,9 +36,6 @@
 	public static String _UI_MOVE_NODE;
 	public static String _UI_MOVE_NODES;
 	public static String _ERROR_FILENAME_MUST_END_DTD;
-	public static String Creating_files;
-	public static String DTDFilesPreferencePage_ExtensionLabel;
-	public static String DTDFilesPreferencePage_ExtensionError;
 	public static String DTDColorPage_0;
 	public static String DTDColorPage_1;
 	public static String DTDColorPage_2;
@@ -56,7 +53,6 @@
 	public static String _UI_WIZARD_NEW_DTD_TITLE;
 	public static String _UI_WIZARD_NEW_DTD_EXPL;
 	public static String _UI_LABEL_DTD_FILE_DELETE;
-	public static String ResourceGroup_nameExists;
 	public static String NewDTDTemplatesWizardPage_0;
 	public static String NewDTDTemplatesWizardPage_1;
 	public static String NewDTDTemplatesWizardPage_2;
diff --git a/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/internal/DTDUIPluginResources.properties b/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/internal/DTDUIPluginResources.properties
index 7e34308..b74fd8a 100644
--- a/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/internal/DTDUIPluginResources.properties
+++ b/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/internal/DTDUIPluginResources.properties
@@ -38,12 +38,7 @@
 _UI_MOVE_NODE=Move Node
 _UI_MOVE_NODES=Move Nodes
 
-_ERROR_FILENAME_MUST_END_DTD=The file name must end in one of the following extensions {0}.
-
-#DTD File page
-Creating_files=Creating files
-DTDFilesPreferencePage_ExtensionLabel=Add this suffix (if not specified):
-DTDFilesPreferencePage_ExtensionError=Suffix must be one of the following {0}.
+_ERROR_FILENAME_MUST_END_DTD=The file name must end in .dtd
 
 #DTD Style page
 DTDColorPage_0=<!ELEMENT Main (One,Two+)>\r\n<!ELEMENT One (Three,Four)>\r\n<!ATTLIST One\r\n oneone CDATA #REQUIRED\r\n>\r\n<!-- You need this -->\r\n<!ELEMENT Two (moremore*)>\r\n<!ATTLIST Two\r\n twotwo CDATA #REQUIRED\r\n twothree (aaa | bbb) "aaa"\r\n>\r\n
@@ -67,7 +62,6 @@
 # copied from dtd core
 _UI_LABEL_DTD_FILE_DELETE=Delete
 ##
-ResourceGroup_nameExists = The same name already exists.
 NewDTDTemplatesWizardPage_0=Select DTD Template
 NewDTDTemplatesWizardPage_1=Select a template as initial content in the DTD page.
 NewDTDTemplatesWizardPage_2=Name
diff --git a/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/internal/preferences/DTDFilesPreferencePage.java b/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/internal/preferences/DTDFilesPreferencePage.java
index 90ffffd..e8df96f 100644
--- a/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/internal/preferences/DTDFilesPreferencePage.java
+++ b/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/internal/preferences/DTDFilesPreferencePage.java
@@ -12,57 +12,31 @@
  *******************************************************************************/
 package org.eclipse.wst.dtd.ui.internal.preferences;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.content.IContentType;
 import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.osgi.util.NLS;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-import org.eclipse.wst.dtd.core.internal.preferences.DTDCorePreferenceNames;
-import org.eclipse.wst.dtd.core.internal.provisional.contenttype.ContentTypeIdForDTD;
-import org.eclipse.wst.dtd.ui.internal.DTDUIMessages;
 import org.eclipse.wst.dtd.ui.internal.DTDUIPlugin;
 import org.eclipse.wst.dtd.ui.internal.editor.IHelpContextIds;
 import org.eclipse.wst.sse.ui.internal.preferences.ui.AbstractPreferencePage;
 
 
 public class DTDFilesPreferencePage extends AbstractPreferencePage {
-	private Text fDefaultSuffix = null;
-	private List fValidExtensions = null;
 
 	protected Control createContents(Composite parent) {
+		noDefaultAndApplyButton();
+		
 		Composite composite = (Composite) super.createContents(parent);
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, IHelpContextIds.DTD_PREFWEBX_FILES_HELPID);
 
-		Group creatingGroup = createGroup(composite, 2);
-		creatingGroup.setText(DTDUIMessages.Creating_files);
-
-		// Default extension for New file Wizard
-		createLabel(creatingGroup, DTDUIMessages.DTDFilesPreferencePage_ExtensionLabel);
-		fDefaultSuffix = createTextField(creatingGroup);
-		fDefaultSuffix.addModifyListener(this);
-
 		setSize(composite);
 		loadPreferences();
 
 		return composite;
 	}
 
-	public void dispose() {
-		fDefaultSuffix.removeModifyListener(this);
-		super.dispose();
-	}
-
 	protected IPreferenceStore doGetPreferenceStore() {
 		return DTDUIPlugin.getDefault().getPreferenceStore();
 	}
@@ -71,28 +45,6 @@
 		DTDCorePlugin.getInstance().savePluginPreferences(); // model
 	}
 
-	/**
-	 * Get content type associated with this new file wizard
-	 * 
-	 * @return IContentType
-	 */
-	private IContentType getContentType() {
-		return Platform.getContentTypeManager().getContentType(ContentTypeIdForDTD.ContentTypeID_DTD);
-	}
-
-	/**
-	 * Get list of valid extensions
-	 * 
-	 * @return List
-	 */
-	private List getValidExtensions() {
-		if (fValidExtensions == null) {
-			IContentType type = getContentType();
-			fValidExtensions = new ArrayList(Arrays.asList(type.getFileSpecs(IContentType.FILE_EXTENSION_SPEC)));
-		}
-		return fValidExtensions;
-	}
-
 	/*
 	 * (non-Javadoc)
 	 * 
@@ -102,18 +54,6 @@
 		return DTDCorePlugin.getInstance().getPluginPreferences();
 	}
 
-	protected void initializeValues() {
-		String suffix = getModelPreferences().getString(DTDCorePreferenceNames.DEFAULT_EXTENSION);
-		fDefaultSuffix.setText(suffix);
-	}
-
-	protected void performDefaults() {
-		String suffix = getModelPreferences().getDefaultString(DTDCorePreferenceNames.DEFAULT_EXTENSION);
-		fDefaultSuffix.setText(suffix);
-
-		super.performDefaults();
-	}
-
 	public boolean performOk() {
 		boolean result = super.performOk();
 
@@ -121,27 +61,4 @@
 
 		return result;
 	}
-
-	protected void storeValues() {
-		String suffix = fDefaultSuffix.getText();
-		getModelPreferences().setValue(DTDCorePreferenceNames.DEFAULT_EXTENSION, suffix);
-	}
-
-	protected void validateValues() {
-		boolean isValid = false;
-		Iterator i = getValidExtensions().iterator();
-		while (i.hasNext() && !isValid) {
-			String extension = (String) i.next();
-			isValid = extension.equalsIgnoreCase(fDefaultSuffix.getText());
-		}
-
-		if (!isValid) {
-			setErrorMessage(NLS.bind(DTDUIMessages.DTDFilesPreferencePage_ExtensionError, getValidExtensions().toString()));
-			setValid(false);
-		}
-		else {
-			setErrorMessage(null);
-			setValid(true);
-		}
-	}
 }
diff --git a/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/internal/wizard/NewDTDWizard.java b/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/internal/wizard/NewDTDWizard.java
index 88ec64d..0cec6ef 100644
--- a/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/internal/wizard/NewDTDWizard.java
+++ b/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/internal/wizard/NewDTDWizard.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 IBM Corporation 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
@@ -19,11 +19,8 @@
 import java.util.List;
 
 import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Preferences;
 import org.eclipse.core.runtime.content.IContentType;
@@ -31,7 +28,6 @@
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.osgi.util.NLS;
 import org.eclipse.ui.INewWizard;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPage;
@@ -40,7 +36,6 @@
 import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
 import org.eclipse.ui.ide.IDE;
 import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-import org.eclipse.wst.dtd.core.internal.preferences.DTDCorePreferenceNames;
 import org.eclipse.wst.dtd.core.internal.provisional.contenttype.ContentTypeIdForDTD;
 import org.eclipse.wst.dtd.ui.internal.DTDUIMessages;
 import org.eclipse.wst.dtd.ui.internal.Logger;
@@ -52,90 +47,39 @@
 	private WizardNewFileCreationPage fNewFilePage;
 	private NewDTDTemplatesWizardPage fNewFileTemplatesPage;
 	private IStructuredSelection fSelection;
-	private IContentType fContentType;
 	private List fValidExtensions = null;
 
 	/**
-	 * Adds default extension to the filename
-	 * 
-	 * @param filename
-	 * @return
-	 */
-	String addDefaultExtension(String filename) {
-		StringBuffer newFileName = new StringBuffer(filename);
-
-		Preferences preference = DTDCorePlugin.getInstance().getPluginPreferences();
-		String ext = preference.getString(DTDCorePreferenceNames.DEFAULT_EXTENSION);
-
-		newFileName.append("."); //$NON-NLS-1$
-		newFileName.append(ext);
-
-		return newFileName.toString();
-	}
-
-	/**
-	 * Get content type associated with this new file wizard
-	 * 
-	 * @return IContentType
-	 */
-	IContentType getContentType() {
-		if (fContentType == null)
-			fContentType = Platform.getContentTypeManager().getContentType(ContentTypeIdForDTD.ContentTypeID_DTD);
-		return fContentType;
-	}
-
-	/**
 	 * Get list of valid extensions for DTD Content type
 	 * 
 	 * @return
 	 */
 	List getValidExtensions() {
 		if (fValidExtensions == null) {
-			IContentType type = getContentType();
+			IContentType type = Platform.getContentTypeManager().getContentType(ContentTypeIdForDTD.ContentTypeID_DTD);
 			fValidExtensions = new ArrayList(Arrays.asList(type.getFileSpecs(IContentType.FILE_EXTENSION_SPEC)));
 		}
 		return fValidExtensions;
 	}
-
-
+	
 	public void addPages() {
 		fNewFilePage = new WizardNewFileCreationPage("DTDWizardNewFileCreationPage", new StructuredSelection(IDE.computeSelectedResources(fSelection))) { //$NON-NLS-1$
 			protected boolean validatePage() {
-				IContentType type = getContentType();
-				String fileName = getFileName();
-				// check that filename does not contain invalid extension
-				if ((fileName.lastIndexOf('.') != -1) && (!type.isAssociatedWith(fileName))) {
-					setErrorMessage(NLS.bind(DTDUIMessages._ERROR_FILENAME_MUST_END_DTD, getValidExtensions().toString()));
+				IPath handlePath = new Path(getFileName());
+				String extension = handlePath.getFileExtension();
+				if (extension == null || !extension.equalsIgnoreCase("dtd")) { //$NON-NLS-1$
+					setErrorMessage(DTDUIMessages._ERROR_FILENAME_MUST_END_DTD); //$NON-NLS-1$
 					return false;
 				}
-				// no file extension specified so check adding default
-				// extension doesn't equal a file that already exists
-				if (fileName.lastIndexOf('.') == -1) {
-					String newFileName = addDefaultExtension(fileName);
-					IPath resourcePath = getContainerFullPath().append(newFileName);
-
-					IWorkspace workspace = ResourcesPlugin.getWorkspace();
-					IStatus result = workspace.validatePath(resourcePath.toString(), IResource.FOLDER);
-					if (!result.isOK()) {
-						// path invalid
-						setErrorMessage(result.getMessage());
-						return false;
-					}
-
-					if ((workspace.getRoot().getFolder(resourcePath).exists() || workspace.getRoot().getFile(resourcePath).exists())) {
-						setErrorMessage(DTDUIMessages.ResourceGroup_nameExists);
-						return false;
-					}
-				}
 				setErrorMessage(null);
 				return super.validatePage();
 			}
 		};
-		fNewFilePage.setTitle(DTDUIMessages._UI_CREATE_NEW_DTD_FILE);
-		fNewFilePage.setDescription(DTDUIMessages._UI_WIZARD_NEW_DTD_EXPL);
+		fNewFilePage.setTitle(DTDUIMessages._UI_CREATE_NEW_DTD_FILE); 
+		fNewFilePage.setDescription(DTDUIMessages._UI_WIZARD_NEW_DTD_EXPL); 
 
 		addPage(fNewFilePage);
-
+		
 		fNewFileTemplatesPage = new NewDTDTemplatesWizardPage();
 		addPage(fNewFileTemplatesPage);
 	}
@@ -143,7 +87,7 @@
 	public void init(IWorkbench aWorkbench, IStructuredSelection aSelection) {
 		fSelection = aSelection;
 		setWindowTitle(DTDUIMessages._UI_WIZARD_NEW_DTD_TITLE); //$NON-NLS-1$
-
+		
 		ImageDescriptor descriptor = DTDEditorPluginImageHelper.getInstance().getImageDescriptor(DTDEditorPluginImages.IMG_WIZBAN_NEWDTDFILE);
 		setDefaultPageImageDescriptor(descriptor);
 	}
@@ -165,60 +109,42 @@
 	}
 
 	public boolean performFinish() {
-		boolean performedOK = false;
-
 		// save user options for next use
 		fNewFileTemplatesPage.saveLastSavedPreferences();
-
-		// no file extension specified so add default extension
-		String fileName = fNewFilePage.getFileName();
-		if (fileName.lastIndexOf('.') == -1) {
-			String newFileName = addDefaultExtension(fileName);
-			fNewFilePage.setFileName(newFileName);
-		}
-
-		// create a new empty file
+		
 		IFile file = fNewFilePage.createNewFile();
+		
+		// put template contents into file
+		String templateString = fNewFileTemplatesPage.getTemplateString();
+		if (templateString != null) {
+			// determine the encoding for the new file
+			Preferences preference = DTDCorePlugin.getInstance().getPluginPreferences();
+			String charSet = preference.getString(CommonEncodingPreferenceNames.OUTPUT_CODESET);
 
-		// if there was problem with creating file, it will be null, so make
-		// sure to check
-		if (file != null) {
-			// put template contents into file
-			String templateString = fNewFileTemplatesPage.getTemplateString();
-			if (templateString != null) {
-				// determine the encoding for the new file
-				Preferences preference = DTDCorePlugin.getInstance().getPluginPreferences();
-				String charSet = preference.getString(CommonEncodingPreferenceNames.OUTPUT_CODESET);
-
-				try {
-					ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
-					OutputStreamWriter outputStreamWriter = null;
-					if (charSet == null || charSet.trim().equals("")) { //$NON-NLS-1$
-						// just use default encoding
-						outputStreamWriter = new OutputStreamWriter(outputStream);
-					}
-					else {
-						outputStreamWriter = new OutputStreamWriter(outputStream, charSet);
-					}
-					outputStreamWriter.write(templateString);
-					outputStreamWriter.flush();
-					outputStreamWriter.close();
-					ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
-					file.setContents(inputStream, true, false, null);
-					inputStream.close();
+			try {
+				ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+				OutputStreamWriter outputStreamWriter = null;
+				if (charSet == null || charSet.trim().equals("")) { //$NON-NLS-1$
+					// just use default encoding
+					outputStreamWriter = new OutputStreamWriter(outputStream);
+				} else {
+					outputStreamWriter = new OutputStreamWriter(outputStream, charSet);
 				}
-				catch (Exception e) {
-					Logger.log(Logger.WARNING_DEBUG, "Could not create contents for new DTD file", e); //$NON-NLS-1$
-				}
+				outputStreamWriter.write(templateString);
+				outputStreamWriter.flush();
+				outputStreamWriter.close();
+				ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
+				file.setContents(inputStream, true, false, null);
+				inputStream.close();
 			}
-
-			// open the file in editor
-			openEditor(file);
-
-			// everything's fine
-			performedOK = true;
+			catch (Exception e) {
+				Logger.log(Logger.WARNING_DEBUG, "Could not create contents for new DTD file", e); //$NON-NLS-1$
+			}
 		}
-		return performedOK;
+
+		// open the file in editor
+		openEditor(file);
+		return true;
 	}
 
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.jdt.core.prefs
index e015586..a0c83a3 100644
--- a/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,4 @@
-#Mon May 30 17:55:54 EDT 2005
+#Sat Jan 28 00:54:50 EST 2006
 eclipse.preferences.version=1
 org.eclipse.jdt.core.builder.cleanOutputFolder=clean
 org.eclipse.jdt.core.builder.duplicateResourceTask=warning
@@ -11,7 +11,7 @@
 org.eclipse.jdt.core.compiler.problem.deprecation=warning
 org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=error
 org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
 org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
 org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
@@ -23,7 +23,7 @@
 org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
 org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
 org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
 org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
 org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
 org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
diff --git a/bundles/org.eclipse.wst.html.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.html.core/META-INF/MANIFEST.MF
index d1eb346..e6b6b31 100644
--- a/bundles/org.eclipse.wst.html.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.html.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.html.core; singleton:=true
-Bundle-Version: 1.0.100.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.wst.html.core.internal.HTMLCorePlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/AttributeCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/AttributeCollection.java
index f4e6340..53d29b9 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/AttributeCollection.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/AttributeCollection.java
@@ -45,9 +45,8 @@
 
 	/**
 	 * Create an attribute declaration.
-	 * 
-	 * @param attrName
-	 *            java.lang.String
+
+	 * @param attrName java.lang.String
 	 */
 	private HTMLAttrDeclImpl create(String attrName) {
 		HTMLAttrDeclImpl attr = null;
@@ -406,8 +405,7 @@
 		}
 		else if (attrName.equalsIgnoreCase(ATTR_NAME_FRAME)) {
 			// (frame %TFrame; #IMPLIED)
-			// %TFrame; is
-			// (void|above|below|hsides|lhs|rhs|vsides|box|border).
+			// %TFrame; is (void|above|below|hsides|lhs|rhs|vsides|box|border).
 			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
 			String[] values = {ATTR_VALUE_VOID, ATTR_VALUE_ABOVE, ATTR_VALUE_BELOW, ATTR_VALUE_HSIDES, ATTR_VALUE_LHS, ATTR_VALUE_RHS, ATTR_VALUE_VSIDES, ATTR_VALUE_BOX, ATTR_VALUE_BORDER};
 			atype.setEnumValues(values);
@@ -422,13 +420,13 @@
 			atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_1);
 			attr = new HTMLAttrDeclImpl(ATTR_NAME_FRAMEBORDER, atype, CMAttributeDeclaration.OPTIONAL);
 
-			// <<D215684
+			//<<D215684
 		}
 		else if (attrName.equalsIgnoreCase(ATTR_NAME_FRAMESPACING)) {
 			// (framespacing CDATA; #IMPLIED)
 			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
 			attr = new HTMLAttrDeclImpl(ATTR_NAME_FRAMESPACING, atype, CMAttributeDeclaration.OPTIONAL);
-			// D215684
+			//D215684
 		}
 		else if (attrName.equalsIgnoreCase(ATTR_NAME_HEADERS)) {
 			// (HEADERS IDREFS; #IMPLIED)
@@ -660,7 +658,7 @@
 
 		}
 		else if (attrName.equalsIgnoreCase(ATTR_NAME_ONFOCUS)) {
-			// (onfocus %Script; #IMPLIED)
+			//	(onfocus %Script; #IMPLIED)
 			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
 			attr = new HTMLAttrDeclImpl(ATTR_NAME_ONFOCUS, atype, CMAttributeDeclaration.OPTIONAL);
 
@@ -916,8 +914,8 @@
 		else if (attrName.equalsIgnoreCase(ATTR_NAME_SRC)) {
 			// (src %URI; #IMPLIED)
 			// NOTE: "src" attributes are defined in several elements.
-			// The definition of IMG is different from others.
-			// So, it should be locally defined.
+			//		 The definition of IMG is different from others.
+			//		 So, it should be locally defined.
 			atype = new HTMLCMDataTypeImpl(CMDataType.URI);
 			attr = new HTMLAttrDeclImpl(ATTR_NAME_SRC, atype, CMAttributeDeclaration.OPTIONAL);
 
@@ -959,8 +957,8 @@
 
 		}
 		else if (attrName.equalsIgnoreCase(ATTR_NAME_TEXT)) {
-			// (text %Color; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR);
+			// (text CDATA #IMPLIED)
+			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
 			attr = new HTMLAttrDeclImpl(ATTR_NAME_TEXT, atype, CMAttributeDeclaration.OPTIONAL);
 
 		}
@@ -1110,9 +1108,9 @@
 	}
 
 	/**
-	 * Get align attribute which has %CAlign; as values.. At this time
-	 * (4/19/2001), it is identical to %LAlign;.
-	 * 
+	 * Get align attribute which has %CAlign; as values..
+	 * At this time (4/19/2001), it is identical to %LAlign;.
+	 *
 	 */
 	public static final HTMLAttrDeclImpl createAlignForCaption() {
 		// align (local)
@@ -1154,12 +1152,13 @@
 	}
 
 	/**
-	 * Create an attribute declaration for <code>align</code> in several
-	 * elements, like <code>P</code>, <code>DIV</code>. The values are
-	 * different from attributes those have the same name in other elements (<code>IMG</code>
-	 * and <code>TABLE</code>). So, it can't treat as global attributes.
-	 * <strong>NOTE: These attribute declaration has no owner CMDocument
-	 * instance.</strong>
+	 * Create an attribute declaration for <code>align</code>
+	 * in several elements, like <code>P</code>, <code>DIV</code>.
+	 * The values are different from attributes those have the same name
+	 * in other elements (<code>IMG</code> and <code>TABLE</code>).
+	 * So, it can't treat as global attributes.
+	 * <strong>NOTE: These attribute declaration has
+	 * no owner CMDocument instance.</strong>
 	 */
 	public static final HTMLAttrDeclImpl createAlignForParagraph() {
 		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
@@ -1172,8 +1171,8 @@
 	}
 
 	/**
-	 * Get %attrs; declarations. %attrs; consists of %coreattrs;, %i18n, and
-	 * %events;.
+	 * Get %attrs; declarations.
+	 * %attrs; consists of %coreattrs;, %i18n, and %events;.
 	 */
 	public void getAttrs(CMNamedNodeMapImpl declarations) {
 		// %coreattrs;
@@ -1196,9 +1195,11 @@
 	}
 
 	/**
-	 * Get %cellhalign; declarations. %cellhaligh; consists of: - (align
-	 * (left|center|right|justify|char) #IMPLIED) - (char %Character;
-	 * #IMPLIED) - (charoff %Length; #IMPLIED)
+	 * Get %cellhalign; declarations.
+	 * %cellhaligh; consists of:
+	 *  - (align (left|center|right|justify|char) #IMPLIED)
+	 *  - (char %Character; #IMPLIED)
+	 *  - (charoff %Length; #IMPLIED)
 	 */
 	public void getCellhalign(CMNamedNodeMapImpl declarations) {
 		// (align (left|center|right|justify|char) #IMPLIED) should be defined
@@ -1217,8 +1218,9 @@
 	}
 
 	/**
-	 * Get %cellvalign; declarations. %cellhaligh; is: - (valign
-	 * (top|middle|bottom|baseline) #IMPLIED)
+	 * Get %cellvalign; declarations.
+	 * %cellhaligh; is:
+	 *  - (valign (top|middle|bottom|baseline) #IMPLIED)
 	 */
 	public void getCellvalign(CMNamedNodeMapImpl declarations) {
 		HTMLAttributeDeclaration dec = getDeclaration(HTML40Namespace.ATTR_NAME_VALIGN);
@@ -1236,9 +1238,7 @@
 
 	/**
 	 * Get a global attribute declaration.
-	 * 
-	 * @param attrName
-	 *            java.lang.String
+	 * @param attrName java.lang.String
 	 */
 	public HTMLAttributeDeclaration getDeclaration(String attrName) {
 		CMNode cmnode = getNamedItem(attrName);
@@ -1254,9 +1254,7 @@
 
 	/**
 	 * Get declarations which are specified by names.
-	 * 
-	 * @param names
-	 *            java.util.Iterator
+	 * @param names java.util.Iterator
 	 */
 	public void getDeclarations(CMNamedNodeMapImpl declarations, Iterator names) {
 		while (names.hasNext()) {
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLElementFormatter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLElementFormatter.java
index 67c3a7e..27fcc9b 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLElementFormatter.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLElementFormatter.java
@@ -28,7 +28,6 @@
 import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
 import org.w3c.dom.Attr;
 import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
 
 // nakamori_TODO: check and remove CSS formatting
 
@@ -59,14 +58,6 @@
 	/**
 	 */
 	private void formatEndTag(IDOMElement element, HTMLFormatContraints contraints) {
-		Node lastChild = element.getLastChild();
-
-		if (lastChild != null && lastChild instanceof IDOMElement && lastChild.getNodeName().equals("jsp:scriptlet")) { //$NON-NLS-1$
-			insertBreakAfter((IDOMElement) lastChild, contraints);
-			return;
-		}
-
-
 		IStructuredDocumentRegion endStructuredDocumentRegion = element.getEndStructuredDocumentRegion();
 		if (endStructuredDocumentRegion == null)
 			return;
@@ -103,12 +94,10 @@
 			removeTailingSpaces(endStructuredDocumentRegion, prevRegion);
 		}
 
-		// BUG123890 (end tag length was already prefactored into
-		// formatStartTag so no need to do it here)
-		// String newEndTag = endStructuredDocumentRegion.getText();
-		// if (newEndTag != null && newEndTag.length() > 0) {
-		// setWidth(contraints, newEndTag);
-		//		}
+		String newEndTag = endStructuredDocumentRegion.getText();
+		if (newEndTag != null && newEndTag.length() > 0) {
+			setWidth(contraints, newEndTag);
+		}
 	}
 
 	/**
@@ -128,12 +117,6 @@
 	/**
 	 */
 	private void formatStartTag(IDOMElement element, HTMLFormatContraints contraints) {
-
-		if (element.getNodeName().equals("jsp:scriptlet")) { //$NON-NLS-1$
-			insertBreakBefore(element, contraints);
-			return;
-		}
-
 		IStructuredDocumentRegion startStructuredDocumentRegion = element.getStartStructuredDocumentRegion();
 		if (startStructuredDocumentRegion == null)
 			return;
@@ -262,11 +245,8 @@
 				compressTailingSpaces(startStructuredDocumentRegion, lastBreakRegion);
 				count++;
 			}
-			else {
+			else
 				removeTailingSpaces(startStructuredDocumentRegion, lastBreakRegion);
-				// BUG123890 (pre-factor in end tag)
-				count += element.getTagName().length() + 3;
-			}
 			addWidth(contraints, count);
 		}
 		else {
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceInitializer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceInitializer.java
index 1021cc7..1683e1c 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceInitializer.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceInitializer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 IBM Corporation 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
@@ -55,9 +55,5 @@
 
 		node.putInt(HTMLCorePreferenceNames.TAG_NAME_CASE, HTMLCorePreferenceNames.LOWER);
 		node.putInt(HTMLCorePreferenceNames.ATTR_NAME_CASE, HTMLCorePreferenceNames.LOWER);
-
-		// this could be made smarter by actually looking up the content
-		// type's valid extensions
-		node.put(HTMLCorePreferenceNames.DEFAULT_EXTENSION, "html"); //$NON-NLS-1$
 	}
 }
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceNames.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceNames.java
index 606783d..90e1d78 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceNames.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceNames.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 IBM Corporation 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
@@ -23,15 +23,6 @@
 	}
 
 	/**
-	 * The default extension to use when none is specified in the New HTML
-	 * File Wizard.
-	 * <p>
-	 * Value is of type <code>String</code>.
-	 * </p>
-	 */
-	public static final String DEFAULT_EXTENSION = "defaultExtension"; //$NON-NLS-1$
-
-	/**
 	 * The maximum width of a line before a line split is needed.
 	 * <p>
 	 * Value is of type <code>Integer</code>.
diff --git a/bundles/org.eclipse.wst.html.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.html.ui/META-INF/MANIFEST.MF
index 5626995..92311f0 100644
--- a/bundles/org.eclipse.wst.html.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.html.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.html.ui; singleton:=true
-Bundle-Version: 1.0.100.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.wst.html.ui.internal.HTMLUIPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIMessages.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIMessages.java
index 0acfb87..b4547be 100644
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIMessages.java
+++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIMessages.java
@@ -29,7 +29,6 @@
 	public static String _UI_WIZARD_NEW_HEADING;
 	public static String _UI_WIZARD_NEW_DESCRIPTION;
 	public static String _ERROR_FILENAME_MUST_END_HTML;
-	public static String ResourceGroup_nameExists;
 	public static String NewHTMLTemplatesWizardPage_0;
 	public static String NewHTMLTemplatesWizardPage_1;
 	public static String NewHTMLTemplatesWizardPage_2;
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIPluginResources.properties b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIPluginResources.properties
index 1aba94a..efddd5d 100644
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIPluginResources.properties
+++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIPluginResources.properties
@@ -19,7 +19,6 @@
 _UI_WIZARD_NEW_HEADING = HTML Page
 _UI_WIZARD_NEW_DESCRIPTION = Create a new HTML Page.
 _ERROR_FILENAME_MUST_END_HTML = The file name must end in one of the following extensions {0}.
-ResourceGroup_nameExists = The same name already exists.
 NewHTMLTemplatesWizardPage_0=Select HTML Template
 NewHTMLTemplatesWizardPage_1=Select a template as initial content in the HTML page.
 NewHTMLTemplatesWizardPage_2=Name
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLContentAssistProcessor.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLContentAssistProcessor.java
index ff35669..f605ba6 100644
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLContentAssistProcessor.java
+++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLContentAssistProcessor.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation 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
@@ -119,9 +119,20 @@
 	 * @param context
 	 */
 	private void addTemplates(ContentAssistRequest contentAssistRequest, String context) {
+		addTemplates(contentAssistRequest, context, contentAssistRequest.getReplacementBeginPosition());
+	}
+	
+	/**
+	 * Adds templates to the list of proposals
+	 * 
+	 * @param contentAssistRequest
+	 * @param context
+	 * @param startOffset
+	 */
+	private void addTemplates(ContentAssistRequest contentAssistRequest, String context, int startOffset) {
 		if (contentAssistRequest == null)
 			return;
-
+		
 		// if already adding template proposals for a certain context type, do
 		// not add again
 		if (!fTemplateContexts.contains(context)) {
@@ -130,7 +141,7 @@
 
 			if (getTemplateCompletionProcessor() != null) {
 				getTemplateCompletionProcessor().setContextType(context);
-				ICompletionProposal[] proposals = getTemplateCompletionProcessor().computeCompletionProposals(fTextViewer, contentAssistRequest.getReplacementBeginPosition());
+				ICompletionProposal[] proposals = getTemplateCompletionProcessor().computeCompletionProposals(fTextViewer, startOffset);
 				for (int i = 0; i < proposals.length; ++i) {
 					if (useProposalList)
 						contentAssistRequest.addProposal(proposals[i]);
@@ -151,7 +162,8 @@
 
 	protected ContentAssistRequest computeCompletionProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode treeNode, IDOMNode xmlnode) {
 		ContentAssistRequest request = super.computeCompletionProposals(documentPosition, matchString, completionRegion, treeNode, xmlnode);
-		addTemplates(request, TemplateContextTypeIdsHTML.ALL);
+		// bug115927 use original document position for all/any region templates
+		addTemplates(request, TemplateContextTypeIdsHTML.ALL, documentPosition);
 		return request;
 	}
 
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLTemplateCompletionProcessor.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLTemplateCompletionProcessor.java
index cc01530..1013fab 100644
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLTemplateCompletionProcessor.java
+++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLTemplateCompletionProcessor.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation 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
@@ -10,14 +10,24 @@
  *******************************************************************************/
 package org.eclipse.wst.html.ui.internal.contentassist;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.ITextSelection;
 import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.jface.text.Region;
 import org.eclipse.jface.text.contentassist.ICompletionProposal;
 import org.eclipse.jface.text.templates.ContextTypeRegistry;
 import org.eclipse.jface.text.templates.Template;
 import org.eclipse.jface.text.templates.TemplateCompletionProcessor;
 import org.eclipse.jface.text.templates.TemplateContext;
 import org.eclipse.jface.text.templates.TemplateContextType;
+import org.eclipse.jface.text.templates.TemplateException;
+import org.eclipse.jface.text.templates.TemplateProposal;
 import org.eclipse.jface.text.templates.persistence.TemplateStore;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.wst.html.ui.internal.HTMLUIPlugin;
@@ -33,8 +43,88 @@
  * templates.
  */
 class HTMLTemplateCompletionProcessor extends TemplateCompletionProcessor {
+	private static final class ProposalComparator implements Comparator {
+		public int compare(Object o1, Object o2) {
+			return ((TemplateProposal) o2).getRelevance() - ((TemplateProposal) o1).getRelevance();
+		}
+	}
+
+	private static final Comparator fgProposalComparator = new ProposalComparator();
 	private String fContextTypeId = null;
 
+	/*
+	 * Copied from super class except instead of calling createContext(viewer,
+	 * region) call createContext(viewer, region, offset) instead
+	 */
+	public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) {
+
+		ITextSelection selection = (ITextSelection) viewer.getSelectionProvider().getSelection();
+
+		// adjust offset to end of normalized selection
+		if (selection.getOffset() == offset)
+			offset = selection.getOffset() + selection.getLength();
+
+		String prefix = extractPrefix(viewer, offset);
+		Region region = new Region(offset - prefix.length(), prefix.length());
+		TemplateContext context = createContext(viewer, region, offset);
+		if (context == null)
+			return new ICompletionProposal[0];
+
+		context.setVariable("selection", selection.getText()); // name of the
+																// selection
+																// variables
+																// {line,
+																// word}_selection
+																// //$NON-NLS-1$
+
+		Template[] templates = getTemplates(context.getContextType().getId());
+
+		List matches = new ArrayList();
+		for (int i = 0; i < templates.length; i++) {
+			Template template = templates[i];
+			try {
+				context.getContextType().validate(template.getPattern());
+			}
+			catch (TemplateException e) {
+				continue;
+			}
+			if (template.matches(prefix, context.getContextType().getId()))
+				matches.add(createProposal(template, context, (IRegion) region, getRelevance(template, prefix)));
+		}
+
+		Collections.sort(matches, fgProposalComparator);
+
+		return (ICompletionProposal[]) matches.toArray(new ICompletionProposal[matches.size()]);
+	}
+
+	/**
+	 * Creates a concrete template context for the given region in the
+	 * document. This involves finding out which context type is valid at the
+	 * given location, and then creating a context of this type. The default
+	 * implementation returns a <code>SmartReplaceTemplateContext</code> for
+	 * the context type at the given location. This takes the offset at which
+	 * content assist was invoked into consideration.
+	 * 
+	 * @param viewer
+	 *            the viewer for which the context is created
+	 * @param region
+	 *            the region into <code>document</code> for which the
+	 *            context is created
+	 * @param offset
+	 *            the original offset where content assist was invoked
+	 * @return a template context that can handle template insertion at the
+	 *         given location, or <code>null</code>
+	 */
+	private TemplateContext createContext(ITextViewer viewer, IRegion region, int offset) {
+		// pretty much same code as super.createContext except create SmartReplaceTemplateContext
+		TemplateContextType contextType = getContextType(viewer, region);
+		if (contextType != null) {
+			IDocument document = viewer.getDocument();
+			return new ReplaceNameTemplateContext(contextType, document, region.getOffset(), region.getLength(), offset);
+		}
+		return null;
+	}
+
 	protected ICompletionProposal createProposal(Template template, TemplateContext context, IRegion region, int relevance) {
 		return new CustomTemplateProposal(template, context, region, getImage(template), relevance);
 	}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/ReplaceNameTemplateContext.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/ReplaceNameTemplateContext.java
new file mode 100644
index 0000000..eef8962
--- /dev/null
+++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/ReplaceNameTemplateContext.java
@@ -0,0 +1,104 @@
+/*******************************************************************************
+ * Copyright (c) 2006 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.html.ui.internal.contentassist;
+
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.Position;
+import org.eclipse.jface.text.templates.DocumentTemplateContext;
+import org.eclipse.jface.text.templates.Template;
+import org.eclipse.jface.text.templates.TemplateBuffer;
+import org.eclipse.jface.text.templates.TemplateContextType;
+import org.eclipse.jface.text.templates.TemplateException;
+
+/**
+ * Just like DocumentTemplateContext except if an insert offset is passed in,
+ * during evaluation, the "prefix" before the template will be checked to see
+ * if it matches the template name. If so, overwrite the template name.
+ * Otherwise, just insert the template at the insert offset location (by not
+ * overwriting the prefix text)
+ */
+public class ReplaceNameTemplateContext extends DocumentTemplateContext {
+	private int fInsertOffset = -1;
+
+	/**
+	 * Creates a document template context.
+	 * 
+	 * @param type
+	 *            the context type
+	 * @param document
+	 *            the document this context applies to
+	 * @param offset
+	 *            the offset of the document region
+	 * @param length
+	 *            the length of the document region
+	 */
+	public ReplaceNameTemplateContext(TemplateContextType type, IDocument document, int offset, int length) {
+		this(type, document, new Position(offset, length));
+	}
+
+	/**
+	 * Creates a document template context. The supplied <code>Position</code>
+	 * will be queried to compute the <code>getStart</code> and
+	 * <code>getEnd</code> methods, which will therefore answer updated
+	 * position data if it is registered with the document.
+	 * 
+	 * @param type
+	 *            the context type
+	 * @param document
+	 *            the document this context applies to
+	 * @param position
+	 *            the position describing the area of the document which forms
+	 *            the template context
+	 * @since 3.1
+	 */
+	public ReplaceNameTemplateContext(TemplateContextType type, IDocument document, Position position) {
+		super(type, document, position);
+	}
+
+	/**
+	 * Creates a document template context.
+	 * 
+	 * @param type
+	 *            the context type
+	 * @param document
+	 *            the document this context applies to
+	 * @param offset
+	 *            the offset of the document region
+	 * @param length
+	 *            the length of the document region
+	 * @param insertOffset
+	 *            the offset of the document region where insert was
+	 *            originally requested
+	 */
+	public ReplaceNameTemplateContext(TemplateContextType type, IDocument document, int offset, int length, int insertOffset) {
+		this(type, document, new Position(offset, length));
+		fInsertOffset = insertOffset;
+	}
+
+	/*
+	 * @see org.eclipse.jface.text.templates.TemplateContext#evaluate(org.eclipse.jface.text.templates.Template)
+	 */
+	public TemplateBuffer evaluate(Template template) throws BadLocationException, TemplateException {
+		TemplateBuffer buffer = super.evaluate(template);
+		if (buffer != null) {
+			if (fInsertOffset > -1 && fInsertOffset > getStart()) {
+				String prefix = getDocument().get(getStart(), fInsertOffset - getStart());
+				if (!template.getName().startsWith(prefix)) {
+					// generate a new buffer that actually contains the
+					// text that was going to be overwritten
+					buffer = new TemplateBuffer(prefix + buffer.getString(), buffer.getVariables());
+				}
+			}
+		}
+		return buffer;
+	}
+}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLFilesPreferencePage.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLFilesPreferencePage.java
index 165153b..097e0bf 100644
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLFilesPreferencePage.java
+++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLFilesPreferencePage.java
@@ -10,20 +10,20 @@
  *******************************************************************************/
 package org.eclipse.wst.html.ui.internal.preferences.ui;
 
-import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.content.IContentType;
 import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeIdForHTML;
 import org.eclipse.wst.html.ui.internal.HTMLUIMessages;
 import org.eclipse.wst.html.ui.internal.HTMLUIPlugin;
 import org.eclipse.wst.html.ui.internal.editor.IHelpContextIds;
 import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
+import org.eclipse.wst.xml.ui.internal.preferences.EncodingSettings;
 import org.eclipse.wst.xml.ui.internal.preferences.WorkbenchDefaultEncodingSettings;
 import org.eclipse.wst.xml.ui.internal.preferences.XMLFilesPreferencePage;
 
@@ -34,9 +34,7 @@
 		return HTMLCorePlugin.getDefault().getPluginPreferences();
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
+	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#doGetPreferenceStore()
 	 */
 	protected IPreferenceStore doGetPreferenceStore() {
@@ -47,9 +45,7 @@
 		HTMLCorePlugin.getDefault().savePluginPreferences(); // model
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
+	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
 	 */
 	protected Control createContents(Composite parent) {
@@ -57,12 +53,12 @@
 		createContentsForCreatingOrSavingGroup(scrolledComposite);
 		createContentsForCreatingGroup(scrolledComposite);
 		createContentsForLoadingGroup(scrolledComposite);
-
+		
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(scrolledComposite, IHelpContextIds.HTML_PREFWEBX_FILES_HELPID);
-
+		
 		setSize(scrolledComposite);
 		loadPreferences();
-
+		
 		return scrolledComposite;
 	}
 
@@ -72,57 +68,48 @@
 
 		fInputEncodingSettings = new WorkbenchDefaultEncodingSettings(group);
 	}
-
-	protected IContentType getContentType() {
-		return Platform.getContentTypeManager().getContentType(ContentTypeIdForHTML.ContentTypeID_HTML);
-	}
-
+	
 	protected void initializeValues() {
 		super.initializeValues();
 		initializeValuesForLoadingGroup();
 	}
-
+	
 	protected void initializeValuesForLoadingGroup() {
 		String encoding = getModelPreferences().getString(CommonEncodingPreferenceNames.INPUT_CODESET);
-
+		
 		fInputEncodingSettings.setIANATag(encoding);
 	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
+	
+	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
 	 */
 	protected void performDefaults() {
 		super.performDefaults();
 		performDefaultsForLoadingGroup();
 	}
-
+	
 	protected void performDefaultsForLoadingGroup() {
 		String encoding = getModelPreferences().getDefaultString(CommonEncodingPreferenceNames.INPUT_CODESET);
 
 		fInputEncodingSettings.setIANATag(encoding);
 	}
-
+	
 	protected void storeValues() {
 		super.storeValues();
 		storeValuesForLoadingGroup();
 	}
-
+	
 	protected void storeValuesForLoadingGroup() {
-		getModelPreferences().setValue(CommonEncodingPreferenceNames.INPUT_CODESET, fInputEncodingSettings.getIANATag());
+		getModelPreferences().setValue(CommonEncodingPreferenceNames.INPUT_CODESET, fInputEncodingSettings.getIANATag());		
 	}
-
 	protected void createContentsForCreatingGroup(Composite parent) {
-		super.createContentsForCreatingGroup(parent);
-		// Group creatingGroup = createGroup(parent, 2);
-		// creatingGroup.setText(HTMLUIMessages.Creating_files);
-		//		
-		// // Encoding..
-		// Label label = createLabel(creatingGroup,
-		// HTMLUIMessages.Encoding_desc);
-		// ((GridData)label.getLayoutData()).horizontalSpan = 2;
-		// fEncodingSettings = new EncodingSettings(creatingGroup);
-		// ((GridData)fEncodingSettings.getLayoutData()).horizontalSpan = 2;
+		Group creatingGroup = createGroup(parent, 2);
+		creatingGroup.setText(HTMLUIMessages.Creating_files);
+		
+		// Encoding..
+		Label label = createLabel(creatingGroup, HTMLUIMessages.Encoding_desc);
+		((GridData)label.getLayoutData()).horizontalSpan = 2;
+		fEncodingSettings = new EncodingSettings(creatingGroup);
+		((GridData)fEncodingSettings.getLayoutData()).horizontalSpan = 2;
 	}
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/taginfo/HTMLInformationProvider.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/taginfo/HTMLInformationProvider.java
index 4e9cb00..9c85f32 100644
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/taginfo/HTMLInformationProvider.java
+++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/taginfo/HTMLInformationProvider.java
@@ -21,6 +21,8 @@
 
 /**
  * Provides context information for HTML tags (Shows tooltip description)
+ * 
+ * @author amywu
  */
 public class HTMLInformationProvider implements IInformationProvider, IInformationProviderExtension {
 
@@ -30,31 +32,22 @@
 		fTextHover = SSEUIPlugin.getDefault().getTextHoverManager().createBestMatchHover(new HTMLTagInfoHoverProcessor());
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.information.IInformationProvider#getSubject(org.eclipse.jface.text.ITextViewer,
-	 *      int)
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.text.information.IInformationProvider#getSubject(org.eclipse.jface.text.ITextViewer, int)
 	 */
 	public IRegion getSubject(ITextViewer textViewer, int offset) {
 		return fTextHover.getHoverRegion(textViewer, offset);
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.information.IInformationProvider#getInformation(org.eclipse.jface.text.ITextViewer,
-	 *      org.eclipse.jface.text.IRegion)
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.text.information.IInformationProvider#getInformation(org.eclipse.jface.text.ITextViewer, org.eclipse.jface.text.IRegion)
 	 */
 	public String getInformation(ITextViewer textViewer, IRegion subject) {
-		return (String) getInformation2(textViewer, subject);
+		return (String)getInformation2(textViewer, subject);
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.information.IInformationProviderExtension#getInformation2(org.eclipse.jface.text.ITextViewer,
-	 *      org.eclipse.jface.text.IRegion)
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.text.information.IInformationProviderExtension#getInformation2(org.eclipse.jface.text.ITextViewer, org.eclipse.jface.text.IRegion)
 	 */
 	public Object getInformation2(ITextViewer textViewer, IRegion subject) {
 		return fTextHover.getHoverInfo(textViewer, subject);
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/wizard/NewHTMLWizard.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/wizard/NewHTMLWizard.java
index 63a9c03..081f609 100644
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/wizard/NewHTMLWizard.java
+++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/wizard/NewHTMLWizard.java
@@ -1,13 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
 package org.eclipse.wst.html.ui.internal.wizard;
 
 import java.io.ByteArrayInputStream;
@@ -18,11 +8,8 @@
 import java.util.List;
 
 import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Preferences;
 import org.eclipse.core.runtime.content.IContentType;
@@ -39,7 +26,6 @@
 import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
 import org.eclipse.ui.ide.IDE;
 import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
 import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeIdForHTML;
 import org.eclipse.wst.html.ui.internal.HTMLUIMessages;
 import org.eclipse.wst.html.ui.internal.Logger;
@@ -51,46 +37,16 @@
 	private WizardNewFileCreationPage fNewFilePage;
 	private NewHTMLTemplatesWizardPage fNewFileTemplatesPage;
 	private IStructuredSelection fSelection;
-	private IContentType fContentType;
 	private List fValidExtensions = null;
 
 	/**
-	 * Adds default extension to the filename
-	 * 
-	 * @param filename
-	 * @return
-	 */
-	String addDefaultExtension(String filename) {
-		StringBuffer newFileName = new StringBuffer(filename);
-
-		Preferences preference = HTMLCorePlugin.getDefault().getPluginPreferences();
-		String ext = preference.getString(HTMLCorePreferenceNames.DEFAULT_EXTENSION);
-
-		newFileName.append("."); //$NON-NLS-1$
-		newFileName.append(ext);
-
-		return newFileName.toString();
-	}
-
-	/**
-	 * Get content type associated with this new file wizard
-	 * 
-	 * @return IContentType
-	 */
-	IContentType getContentType() {
-		if (fContentType == null)
-			fContentType = Platform.getContentTypeManager().getContentType(ContentTypeIdForHTML.ContentTypeID_HTML);
-		return fContentType;
-	}
-
-	/**
-	 * Get list of valid extensions for HTML Content type
+	 * Get list of valid extensions for JSP Content type
 	 * 
 	 * @return
 	 */
 	List getValidExtensions() {
 		if (fValidExtensions == null) {
-			IContentType type = getContentType();
+			IContentType type = Platform.getContentTypeManager().getContentType(ContentTypeIdForHTML.ContentTypeID_HTML);
 			fValidExtensions = new ArrayList(Arrays.asList(type.getFileSpecs(IContentType.FILE_EXTENSION_SPEC)));
 		}
 		return fValidExtensions;
@@ -99,33 +55,12 @@
 	public void addPages() {
 		fNewFilePage = new WizardNewFileCreationPage("HTMLWizardNewFileCreationPage", new StructuredSelection(IDE.computeSelectedResources(fSelection))) { //$NON-NLS-1$
 			protected boolean validatePage() {
-				IContentType type = getContentType();
-				String fileName = getFileName();
-				// check that filename does not contain invalid extension
-				if ((fileName.lastIndexOf('.') != -1) && (!type.isAssociatedWith(fileName))) {
+				IPath handlePath = new Path(getFileName());
+				String extension = handlePath.getFileExtension();
+				if (extension == null || !getValidExtensions().contains(extension)) {
 					setErrorMessage(NLS.bind(HTMLUIMessages._ERROR_FILENAME_MUST_END_HTML, getValidExtensions().toString()));
 					return false;
 				}
-				// no file extension specified so check adding default
-				// extension doesn't equal a file that already exists
-				if (fileName.lastIndexOf('.') == -1) {
-					String newFileName = addDefaultExtension(fileName);
-					IPath resourcePath = getContainerFullPath().append(newFileName);
-
-					IWorkspace workspace = ResourcesPlugin.getWorkspace();
-					IStatus result = workspace.validatePath(resourcePath.toString(), IResource.FOLDER);
-					if (!result.isOK()) {
-						// path invalid
-						setErrorMessage(result.getMessage());
-						return false;
-					}
-
-					if ((workspace.getRoot().getFolder(resourcePath).exists() || workspace.getRoot().getFile(resourcePath).exists())) {
-						setErrorMessage(HTMLUIMessages.ResourceGroup_nameExists);
-						return false;
-					}
-				}
-
 				setErrorMessage(null);
 				return super.validatePage();
 			}
@@ -134,7 +69,7 @@
 		fNewFilePage.setDescription(HTMLUIMessages._UI_WIZARD_NEW_DESCRIPTION);
 
 		addPage(fNewFilePage);
-
+		
 		fNewFileTemplatesPage = new NewHTMLTemplatesWizardPage();
 		addPage(fNewFileTemplatesPage);
 	}
@@ -142,7 +77,7 @@
 	public void init(IWorkbench aWorkbench, IStructuredSelection aSelection) {
 		fSelection = aSelection;
 		setWindowTitle(HTMLUIMessages._UI_WIZARD_NEW_TITLE);
-
+		
 		ImageDescriptor descriptor = HTMLEditorPluginImageHelper.getInstance().getImageDescriptor(HTMLEditorPluginImages.IMG_WIZBAN_NEWHTMLFILE);
 		setDefaultPageImageDescriptor(descriptor);
 	}
@@ -164,58 +99,42 @@
 	}
 
 	public boolean performFinish() {
-		boolean performedOK = false;
 		// save user options for next use
 		fNewFileTemplatesPage.saveLastSavedPreferences();
 
-		// no file extension specified so add default extension
-		String fileName = fNewFilePage.getFileName();
-		if (fileName.lastIndexOf('.') == -1) {
-			String newFileName = addDefaultExtension(fileName);
-			fNewFilePage.setFileName(newFileName);
-		}
-
 		// create a new empty file
 		IFile file = fNewFilePage.createNewFile();
 
-		// if there was problem with creating file, it will be null, so make
-		// sure to check
-		if (file != null) {
-			// put template contents into file
-			String templateString = fNewFileTemplatesPage.getTemplateString();
-			if (templateString != null) {
-				// determine the encoding for the new file
-				Preferences preference = HTMLCorePlugin.getDefault().getPluginPreferences();
-				String charSet = preference.getString(CommonEncodingPreferenceNames.OUTPUT_CODESET);
+		// put template contents into file
+		String templateString = fNewFileTemplatesPage.getTemplateString();
+		if (templateString != null) {
+			// determine the encoding for the new file
+			Preferences preference = HTMLCorePlugin.getDefault().getPluginPreferences();
+			String charSet = preference.getString(CommonEncodingPreferenceNames.OUTPUT_CODESET);
 
-				try {
-					ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
-					OutputStreamWriter outputStreamWriter = null;
-					if (charSet == null || charSet.trim().equals("")) { //$NON-NLS-1$
-						// just use default encoding
-						outputStreamWriter = new OutputStreamWriter(outputStream);
-					}
-					else {
-						outputStreamWriter = new OutputStreamWriter(outputStream, charSet);
-					}
-					outputStreamWriter.write(templateString);
-					outputStreamWriter.flush();
-					outputStreamWriter.close();
-					ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
-					file.setContents(inputStream, true, false, null);
-					inputStream.close();
+			try {
+				ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+				OutputStreamWriter outputStreamWriter = null;
+				if (charSet == null || charSet.trim().equals("")) { //$NON-NLS-1$
+					// just use default encoding
+					outputStreamWriter = new OutputStreamWriter(outputStream);
+				} else {
+					outputStreamWriter = new OutputStreamWriter(outputStream, charSet);
 				}
-				catch (Exception e) {
-					Logger.log(Logger.WARNING_DEBUG, "Could not create contents for new HTML file", e); //$NON-NLS-1$
-				}
+				outputStreamWriter.write(templateString);
+				outputStreamWriter.flush();
+				outputStreamWriter.close();
+				ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
+				file.setContents(inputStream, true, false, null);
+				inputStream.close();
 			}
-
-			// open the file in editor
-			openEditor(file);
-
-			// everything's fine
-			performedOK = true;
+			catch (Exception e) {
+				Logger.log(Logger.WARNING_DEBUG, "Could not create contents for new HTML file", e); //$NON-NLS-1$
+			}
 		}
-		return performedOK;
+
+		// open the file in editor
+		openEditor(file);
+		return true;
 	}
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.sse.core/.cvsignore b/bundles/org.eclipse.wst.sse.core/.cvsignore
index 60d0b9a..fa4ec03 100644
--- a/bundles/org.eclipse.wst.sse.core/.cvsignore
+++ b/bundles/org.eclipse.wst.sse.core/.cvsignore
@@ -5,4 +5,3 @@
 org.eclipse.wst.sse.core_1.0.0.jar
 @dot
 src.zip
-.fbwarnings
diff --git a/bundles/org.eclipse.wst.sse.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.sse.core/META-INF/MANIFEST.MF
index 5b8b8a2..5be5741 100644
--- a/bundles/org.eclipse.wst.sse.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.sse.core/META-INF/MANIFEST.MF
@@ -40,4 +40,4 @@
  org.eclipse.core.filebuffers,
  org.eclipse.wst.common.uriresolver,
  org.eclipse.emf.common
-Eclipse-LazyStart: true
+Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.wst.sse.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.sse.ui/META-INF/MANIFEST.MF
index 4857735..7c0be57 100644
--- a/bundles/org.eclipse.wst.sse.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.sse.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.sse.ui; singleton:=true
-Bundle-Version: 1.0.101.qualifier
+Bundle-Version: 1.0.1.qualifier
 Bundle-Activator: org.eclipse.wst.sse.ui.internal.SSEUIPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/InformationProvider.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/InformationProvider.java
deleted file mode 100644
index 8f84759..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/InformationProvider.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui;
-
-import org.eclipse.jface.text.IInformationControlCreator;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.information.IInformationProvider;
-import org.eclipse.jface.text.information.IInformationProviderExtension;
-import org.eclipse.jface.text.information.IInformationProviderExtension2;
-
-/**
- * Information provider used to present the information.
- * 
- * @see org.eclipse.jdt.internal.ui.javaeditor.JavaEditor#InformationDispatchAction
- * @see org.eclipse.wst.sse.ui.StructuredTextEditor#InformationDispatchAction
- */
-class InformationProvider implements IInformationProvider, IInformationProviderExtension, IInformationProviderExtension2 {
-
-	private IRegion fHoverRegion;
-	private String fHoverInfo;
-	private IInformationControlCreator fControlCreator;
-
-	InformationProvider(IRegion hoverRegion, String hoverInfo, IInformationControlCreator controlCreator) {
-		fHoverRegion = hoverRegion;
-		fHoverInfo = hoverInfo;
-		fControlCreator = controlCreator;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.information.IInformationProvider#getSubject(org.eclipse.jface.text.ITextViewer,
-	 *      int)
-	 */
-	public IRegion getSubject(ITextViewer textViewer, int invocationOffset) {
-		return fHoverRegion;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.information.IInformationProvider#getInformation(org.eclipse.jface.text.ITextViewer,
-	 *      org.eclipse.jface.text.IRegion)
-	 */
-	public String getInformation(ITextViewer textViewer, IRegion subject) {
-		return (String) getInformation2(textViewer, subject);
-	}
-
-	public Object getInformation2(ITextViewer textViewer, IRegion subject) {
-		return fHoverInfo;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.information.IInformationProviderExtension2#getInformationPresenterControlCreator()
-	 * @since 3.0
-	 */
-	public IInformationControlCreator getInformationPresenterControlCreator() {
-		return fControlCreator;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextEditor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextEditor.java
index 4f14982..d57c8eb 100644
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextEditor.java
+++ b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextEditor.java
@@ -38,7 +38,6 @@
 import org.eclipse.jface.action.MenuManager;
 import org.eclipse.jface.action.Separator;
 import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.jface.text.DefaultInformationControl;
 import org.eclipse.jface.text.DocumentEvent;
 import org.eclipse.jface.text.IDocument;
@@ -53,14 +52,8 @@
 import org.eclipse.jface.text.ITextViewer;
 import org.eclipse.jface.text.ITextViewerExtension;
 import org.eclipse.jface.text.ITextViewerExtension2;
-import org.eclipse.jface.text.ITextViewerExtension4;
-import org.eclipse.jface.text.ITextViewerExtension5;
 import org.eclipse.jface.text.TextSelection;
-import org.eclipse.jface.text.TextUtilities;
 import org.eclipse.jface.text.contentassist.IContentAssistant;
-import org.eclipse.jface.text.information.IInformationProvider;
-import org.eclipse.jface.text.information.IInformationProviderExtension2;
-import org.eclipse.jface.text.information.InformationPresenter;
 import org.eclipse.jface.text.source.ICharacterPairMatcher;
 import org.eclipse.jface.text.source.ISourceViewer;
 import org.eclipse.jface.text.source.IVerticalRuler;
@@ -123,7 +116,6 @@
 import org.eclipse.ui.texteditor.IUpdate;
 import org.eclipse.ui.texteditor.IWorkbenchActionDefinitionIds;
 import org.eclipse.ui.texteditor.SourceViewerDecorationSupport;
-import org.eclipse.ui.texteditor.TextEditorAction;
 import org.eclipse.ui.texteditor.TextOperationAction;
 import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
 import org.eclipse.ui.views.properties.IPropertySheetPage;
@@ -134,7 +126,6 @@
 import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
 import org.eclipse.wst.sse.core.internal.provisional.StructuredModelManager;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredPartitioning;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
 import org.eclipse.wst.sse.core.internal.text.IExecutionDelegatable;
 import org.eclipse.wst.sse.core.internal.undo.IStructuredTextUndoManager;
@@ -162,7 +153,6 @@
 import org.eclipse.wst.sse.ui.internal.debug.ManageBreakpointAction;
 import org.eclipse.wst.sse.ui.internal.debug.ToggleBreakpointAction;
 import org.eclipse.wst.sse.ui.internal.debug.ToggleBreakpointsTarget;
-import org.eclipse.wst.sse.ui.internal.derived.HTMLTextPresenter;
 import org.eclipse.wst.sse.ui.internal.editor.EditorModelUtil;
 import org.eclipse.wst.sse.ui.internal.editor.IHelpContextIds;
 import org.eclipse.wst.sse.ui.internal.editor.StructuredModelDocumentProvider;
@@ -843,127 +833,6 @@
 	}
 
 	/**
-	 * This action behaves in two different ways: If there is no current text
-	 * hover, the javadoc is displayed using information presenter. If there
-	 * is a current text hover, it is converted into a information presenter
-	 * in order to make it sticky.
-	 * 
-	 * @see org.eclipse.jdt.internal.ui.javaeditor.JavaEditor#InformationDispatchAction
-	 */
-	class InformationDispatchAction extends TextEditorAction {
-
-		/** The wrapped text operation action. */
-		private final TextOperationAction fTextOperationAction;
-
-		/**
-		 * Creates a dispatch action.
-		 * 
-		 * @param resourceBundle
-		 *            the resource bundle
-		 * @param prefix
-		 *            the prefix
-		 * @param textOperationAction
-		 *            the text operation action
-		 */
-		public InformationDispatchAction(ResourceBundle resourceBundle, String prefix, final TextOperationAction textOperationAction) {
-			super(resourceBundle, prefix, StructuredTextEditor.this);
-			if (textOperationAction == null)
-				throw new IllegalArgumentException();
-			fTextOperationAction = textOperationAction;
-		}
-
-		/*
-		 * @see org.eclipse.jface.action.IAction#run()
-		 */
-		public void run() {
-			ISourceViewer sourceViewer = getSourceViewer();
-			if (sourceViewer == null) {
-				fTextOperationAction.run();
-				return;
-			}
-
-			if (sourceViewer instanceof ITextViewerExtension4) {
-				ITextViewerExtension4 extension4 = (ITextViewerExtension4) sourceViewer;
-				if (extension4.moveFocusToWidgetToken())
-					return;
-			}
-
-			if (!(sourceViewer instanceof ITextViewerExtension2)) {
-				fTextOperationAction.run();
-				return;
-			}
-
-			ITextViewerExtension2 textViewerExtension2 = (ITextViewerExtension2) sourceViewer;
-
-			// does a text hover exist?
-			ITextHover textHover = textViewerExtension2.getCurrentTextHover();
-			if (textHover == null) {
-				fTextOperationAction.run();
-				return;
-			}
-
-			Point hoverEventLocation = textViewerExtension2.getHoverEventLocation();
-			int offset = computeOffsetAtLocation(sourceViewer, hoverEventLocation.x, hoverEventLocation.y);
-			if (offset == -1) {
-				fTextOperationAction.run();
-				return;
-			}
-
-			try {
-				// get the text hover content
-				String contentType = TextUtilities.getContentType(sourceViewer.getDocument(), IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING, offset, true);
-
-				IRegion hoverRegion = textHover.getHoverRegion(sourceViewer, offset);
-				if (hoverRegion == null)
-					return;
-
-				String hoverInfo = textHover.getHoverInfo(sourceViewer, hoverRegion);
-
-				IInformationControlCreator controlCreator = null;
-				if (textHover instanceof IInformationProviderExtension2)
-					controlCreator = ((IInformationProviderExtension2) textHover).getInformationPresenterControlCreator();
-
-				IInformationProvider informationProvider = new InformationProvider(hoverRegion, hoverInfo, controlCreator);
-
-				fInformationPresenter.setOffset(offset);
-				fInformationPresenter.setDocumentPartitioning(IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING);
-				fInformationPresenter.setInformationProvider(informationProvider, contentType);
-				fInformationPresenter.showInformation();
-
-			}
-			catch (BadLocationException e) {
-				// No good information to display
-			}
-		}
-
-		// modified version from TextViewer
-		private int computeOffsetAtLocation(ITextViewer textViewer, int x, int y) {
-
-			StyledText styledText = textViewer.getTextWidget();
-			IDocument document = textViewer.getDocument();
-
-			if (document == null)
-				return -1;
-
-			try {
-				int widgetLocation = styledText.getOffsetAtLocation(new Point(x, y));
-				if (textViewer instanceof ITextViewerExtension5) {
-					ITextViewerExtension5 extension = (ITextViewerExtension5) textViewer;
-					return extension.widgetOffset2ModelOffset(widgetLocation);
-				}
-				else {
-					IRegion visibleRegion = textViewer.getVisibleRegion();
-					return widgetLocation + visibleRegion.getOffset();
-				}
-			}
-			catch (IllegalArgumentException e) {
-				return -1;
-			}
-
-		}
-	}
-
-	/**
 	 * Not API. May be removed in the future.
 	 */
 	protected final static char[] BRACKETS = {'{', '}', '(', ')', '[', ']'};
@@ -1046,8 +915,6 @@
 	private String fViewerConfigurationTargetId;
 	/** The selection history of the editor */
 	private SelectionHistory fSelectionHistory;
-	/** The information presenter. */
-	private InformationPresenter fInformationPresenter;
 	private boolean fUpdateMenuTextPending;
 	int hoverX = -1;
 	int hoverY = -1;
@@ -1320,7 +1187,6 @@
 		// the current insertion
 		// position
 		action = new TextOperationAction(SSEUIMessages.getResourceBundle(), StructuredTextEditorActionConstants.ACTION_NAME_INFORMATION + UNDERSCORE, this, ISourceViewer.INFORMATION, true);
-		action = new InformationDispatchAction(SSEUIMessages.getResourceBundle(), StructuredTextEditorActionConstants.ACTION_NAME_INFORMATION + UNDERSCORE, (TextOperationAction) action);
 		action.setActionDefinitionId(ActionDefinitionIds.INFORMATION);
 		setAction(StructuredTextEditorActionConstants.ACTION_NAME_INFORMATION, action);
 		markAsStateDependentAction(StructuredTextEditorActionConstants.ACTION_NAME_INFORMATION, true);
@@ -1489,19 +1355,6 @@
 		else {
 			updateEditorControlsForContentType(null);
 		}
-
-		// used for Show Tooltip Description
-		IInformationControlCreator informationControlCreator = new IInformationControlCreator() {
-			public IInformationControl createInformationControl(Shell shell) {
-				boolean cutDown = false;
-				int style = cutDown ? SWT.NONE : (SWT.V_SCROLL | SWT.H_SCROLL);
-				return new DefaultInformationControl(shell, SWT.RESIZE | SWT.TOOL, style, new HTMLTextPresenter(cutDown));
-			}
-		};
-
-		fInformationPresenter = new InformationPresenter(informationControlCreator);
-		fInformationPresenter.setSizeConstraints(60, 10, true, true);
-		fInformationPresenter.install(getSourceViewer());
 	}
 
 	protected PropertySheetConfiguration createPropertySheetConfiguration() {
@@ -1658,12 +1511,6 @@
 			System.out.println("Average time per call: " + (adapterTime / adapterRequests)); //$NON-NLS-1$
 		}
 
-		// dispose of information presenter
-		if (fInformationPresenter != null) {
-			fInformationPresenter.dispose();
-			fInformationPresenter = null;
-		}
-
 		// dispose of selection history
 		if (fSelectionHistory != null) {
 			fSelectionHistory.dispose();
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextViewerConfiguration.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextViewerConfiguration.java
index 5ca2617..00c932c 100644
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextViewerConfiguration.java
+++ b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextViewerConfiguration.java
@@ -282,7 +282,7 @@
 		// used by hover help
 		return new IInformationControlCreator() {
 			public IInformationControl createInformationControl(Shell parent) {
-				return new DefaultInformationControl(parent, SWT.NONE, new HTMLTextPresenter(true));
+				return new DefaultInformationControl(parent, SWT.NONE, new HTMLTextPresenter(false));
 			}
 		};
 	}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/SSEUIMessages.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/SSEUIMessages.java
index 2b295b4..be08070 100644
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/SSEUIMessages.java
+++ b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/SSEUIMessages.java
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others. All rights reserved.   This
+ * Copyright (c) 2005 IBM Corporation 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
@@ -275,9 +275,6 @@
 	public static String OccurrencesSearchQuery_2;
 	public static String ShowView_errorTitle;
 	public static String proc_dirty_regions_0;
-	
-	public static String textHoverMakeStickyHint;
-	
 	// Encoding
 	public static String EncodingPreferencePage_0;
 	public static String EncodingPreferencePage_1;
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/SSEUIPluginResources.properties b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/SSEUIPluginResources.properties
index 65d725f..af1d4f1 100644
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/SSEUIPluginResources.properties
+++ b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/SSEUIPluginResources.properties
@@ -251,9 +251,6 @@
 OccurrencesSearchQuery_2=file
 ShowView_errorTitle=Problems Showing View
 proc_dirty_regions_0 = Processing Dirty Regions
-
-textHoverMakeStickyHint=Press ''{0}'' for focus.
-
 ## Encoding
 EncodingPreferencePage_0=Encoding settings for Web and XML files:
 EncodingPreferencePage_1=Use 3 byte BOM (Byte Order Mark) when saving UTF-8 encoded files
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/messages.properties b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextEditor.java
similarity index 100%
rename from bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/messages.properties
rename to bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextEditor.java
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextViewer.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextViewer.java
index efa9b45..e0801ed 100644
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextViewer.java
+++ b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextViewer.java
@@ -16,7 +16,6 @@
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.IDocumentAdapter;
 import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextSelection;
 import org.eclipse.jface.text.ITextViewerExtension2;
 import org.eclipse.jface.text.Region;
 import org.eclipse.jface.text.TextSelection;
@@ -737,11 +736,8 @@
 	 * @see org.eclipse.wst.sse.core.undo.IDocumentSelectionMediator#undoOperationSelectionChanged(org.eclipse.wst.sse.core.undo.UndoDocumentEvent)
 	 */
 	public void undoOperationSelectionChanged(UndoDocumentEvent event) {
-		if (event.getRequester() != null && event.getRequester().equals(this) && event.getDocument().equals(getDocument())) {
-			//BUG107687: Undo/redo do not scroll editor
-			ITextSelection selection = new TextSelection(event.getOffset(), event.getLength());
-			setSelection(selection, true);
-		}
+		if (event.getRequester() != null && event.getRequester().equals(this) && event.getDocument().equals(getDocument()))
+			setSelectedRange(event.getOffset(), event.getLength());
 	}
 
 	/**
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/CustomCompletionProposal.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/CustomCompletionProposal.java
index 013799b..9872fb2 100644
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/CustomCompletionProposal.java
+++ b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/CustomCompletionProposal.java
@@ -188,7 +188,7 @@
     public int getContextInformationPosition() {
         return getCursorPosition();
     }
-    
+
     public int getCursorPosition() {
         return fCursorPosition;
     }
@@ -197,10 +197,6 @@
         fCursorPosition = pos;
     }
 
-    public void setDisplayString(String newDisplayString) {
-    	fDisplayString = newDisplayString;
-    }
-    
     public String getDisplayString() {
         // return fProposal.getDisplayString();
         return fDisplayString;
@@ -215,9 +211,6 @@
         return fRelevance;
     }
 
-    public void setReplacementLength(int newReplacementLength) {
-        fReplacementLength = newReplacementLength;
-    }  
     public int getReplacementLength() {
         return fReplacementLength;
     }
@@ -268,15 +261,13 @@
 
     // code is borrowed from JavaCompletionProposal
     protected boolean startsWith(IDocument document, int offset, String word) {
-	
-    	int wordLength = word == null ? 0 : word.length();
+        int wordLength = word == null ? 0 : word.length();
         if (offset > fReplacementOffset + wordLength)
             return false;
 
         try {
             int length = offset - fReplacementOffset;
             String start = document.get(fReplacementOffset, length);
-
             return word.substring(0, length).equalsIgnoreCase(start);
         } catch (BadLocationException x) {
         }
@@ -300,20 +291,11 @@
         if (offset < fReplacementOffset)
             return false;
         boolean validated = startsWith(document, offset, fDisplayString);
-
+        // CMVC 269884
         if (fUpdateLengthOnValidate) {
-
-            // it would be better to use "originalCursorPosition" instead of
-            // getReplacementOffset(), but we don't have that info.
             int newLength = offset - getReplacementOffset();
             int delta = newLength - fOriginalReplacementLength;
             fReplacementLength = delta + fOriginalReplacementLength;
-            
-        	// if it's an attribute value, replacement offset is
-            // going to be one off from the actual cursor offset...
-        	char firstChar = document.get().charAt(getReplacementOffset());
-        	if(firstChar == '"' || firstChar == '\'')
-        		fReplacementLength ++;
         }
         return validated;
     }
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentoutline/ConfigurableContentOutlinePage.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentoutline/ConfigurableContentOutlinePage.java
index fbb1466..2f1874c 100644
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentoutline/ConfigurableContentOutlinePage.java
+++ b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentoutline/ConfigurableContentOutlinePage.java
@@ -153,7 +153,7 @@
 				 * have focus.
 				 */
 				ISelection validContentSelection = getConfiguration().getSelection(getTreeViewer(), selection);
-//				getTreeViewer().refresh(true);
+				getTreeViewer().refresh(true);
 				boolean isLinked = getConfiguration().isLinkedWithEditor(getTreeViewer());
 				if (isLinked) {
 					getTreeViewer().setSelection(validContentSelection, true);
@@ -383,6 +383,7 @@
 	}
 
 	public void dispose() {
+		super.dispose();
 		getSite().getWorkbenchWindow().getSelectionService().removePostSelectionListener(getSelectionServiceListener());
 		if (fDoubleClickProvider != null) {
 			getTreeViewer().removeDoubleClickListener(fDoubleClickProvider);
@@ -398,7 +399,6 @@
 			fContextMenuManager.dispose();
 		}
 		setConfiguration(NULL_CONFIGURATION);
-		super.dispose();
 	}
 
 	/*
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/ReconcileStepForValidator.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/ReconcileStepForValidator.java
index 96f1ae7..afee08d 100644
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/ReconcileStepForValidator.java
+++ b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/ReconcileStepForValidator.java
@@ -273,7 +273,7 @@
 
 		IFile file = getFile();
 
-		if (file != null && file.exists()) {
+		if (file != null) {
 			try {
 				IProject project = file.getProject();
 				IncrementalHelper helper = getHelper(project);
@@ -323,25 +323,30 @@
  		IReconcileResult[] results = EMPTY_RECONCILE_RESULT_SET;
  
  		IFile file = getFile();
- 		
- 		if(file != null && file.exists()) {
-			try {
-				IProject project = file.getProject();
-				IncrementalHelper helper = getHelper(project);
+		try {
+			IProject project = null;
+			if (file != null)
+				project = file.getProject();
+ 
+			IncrementalHelper helper = getHelper(project);
+
+			if (file != null)
 				helper.setURI(file.getFullPath().toString());
-				
-				if(fValidator instanceof ISourceValidator) {
-					IncrementalReporter reporter = getReporter();
-					((ISourceValidator)fValidator).validate(dirtyRegion, helper, reporter);
-					//results = createAnnotations(reporter.getMessages());
-					results = createAnnotations(reporter.getAnnotationInfo());
-					reporter.removeAllMessages(fValidator);
-				}
-	
-			} catch (Exception e) {
-				Logger.logException(e);
-	 		}
+ 
+			if(fValidator instanceof ISourceValidator) {
+				IncrementalReporter reporter = getReporter();
+				((ISourceValidator)fValidator).validate(dirtyRegion, helper, reporter);
+				//results = createAnnotations(reporter.getMessages());
+				results = createAnnotations(reporter.getAnnotationInfo());
+				reporter.removeAllMessages(fValidator);
+			}
+
+		} catch (Exception e) {
+			Logger.logException(e);
  		}
  		return results;
  	}
+	
+	
+	
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/AbstractHoverProcessor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/AbstractHoverProcessor.java
deleted file mode 100644
index 0ea279f..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/AbstractHoverProcessor.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.taginfo;
-
-import org.eclipse.jface.bindings.TriggerSequence;
-import org.eclipse.jface.text.DefaultInformationControl;
-import org.eclipse.jface.text.IInformationControl;
-import org.eclipse.jface.text.IInformationControlCreator;
-import org.eclipse.jface.text.ITextHover;
-import org.eclipse.jface.text.ITextHoverExtension;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.keys.IBindingService;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.actions.ActionDefinitionIds;
-import org.eclipse.wst.sse.ui.internal.derived.HTMLTextPresenter;
-
-/**
- * Abstract class for providing hover information for Source editor. Includes
- * a hover control creator which has the "Press F2 for focus" message built
- * in.
- * 
- * @since WTP 1.5
- */
-abstract public class AbstractHoverProcessor implements ITextHover, ITextHoverExtension {
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.ITextHoverExtension#getHoverControlCreator()
-	 */
-	public IInformationControlCreator getHoverControlCreator() {
-		return new IInformationControlCreator() {
-			public IInformationControl createInformationControl(Shell parent) {
-				return new DefaultInformationControl(parent, SWT.NONE, new HTMLTextPresenter(true), getTooltipAffordanceString());
-			}
-		};
-	}
-
-	/**
-	 * Returns the short cut assigned to the sub menu or <code>null</code>
-	 * if no short cut is assigned.
-	 * 
-	 * @return the short cut as a human readable string or <code>null</code>
-	 */
-	private String getShortCutString() {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		final IBindingService bindingService = (IBindingService) workbench.getAdapter(IBindingService.class);
-		final TriggerSequence[] activeBindings = bindingService.getActiveBindingsFor(ActionDefinitionIds.INFORMATION);
-		if (activeBindings.length > 0) {
-			return activeBindings[0].format();
-		}
-
-		return null;
-	}
-
-	/**
-	 * Returns the tool tip affordance string.
-	 * 
-	 * @return the affordance string or <code>null</code> if disabled or no
-	 *         key binding is defined
-	 * @since 3.0
-	 */
-	private String getTooltipAffordanceString() {
-		String sticky = null;
-		String keySequence = getShortCutString();
-		if (keySequence != null) {
-			sticky = NLS.bind(SSEUIMessages.textHoverMakeStickyHint, keySequence);
-		}
-		return sticky;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/AnnotationHoverProcessor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/AnnotationHoverProcessor.java
index b4f7ce1..b3ffc99 100644
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/AnnotationHoverProcessor.java
+++ b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/AnnotationHoverProcessor.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 IBM Corporation 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
@@ -18,6 +18,7 @@
 
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.ITextHover;
 import org.eclipse.jface.text.ITextViewer;
 import org.eclipse.jface.text.Position;
 import org.eclipse.jface.text.Region;
@@ -38,13 +39,13 @@
  * 
  * @author amywu
  */
-public class AnnotationHoverProcessor extends AbstractHoverProcessor {
+public class AnnotationHoverProcessor implements ITextHover {
 	private final static String LIST_BEGIN = "<ul>"; //$NON-NLS-1$
 	private final static String LIST_ELEMENT = "<li>"; //$NON-NLS-1$
 	private final static String PARAGRAPH_END = "</p>"; //$NON-NLS-1$
-	private final static String PARAGRAPH_START = "<p>"; //$NON-NLS-1$
 
-	private IPreferenceStore fPreferenceStore = null;
+	private final static String PARAGRAPH_START = "<p>"; //$NON-NLS-1$
+	protected IPreferenceStore fPreferenceStore = null;
 
 	/**
 	 * 
@@ -60,7 +61,7 @@
 	 *            assumes msg is neither null nor empty string
 	 * @return
 	 */
-	private String formatMessage(String msg) {
+	protected String formatMessage(String msg) {
 		StringBuffer buf = new StringBuffer();
 		buf.append(PARAGRAPH_START);
 		buf.append(StringUtils.convertToHTMLContent(msg));
@@ -74,7 +75,7 @@
 	 * @param messages
 	 * @return
 	 */
-	private String formatMessages(List messages) {
+	protected String formatMessages(List messages) {
 		StringBuffer buffer = new StringBuffer();
 		buffer.append(PARAGRAPH_START);
 		buffer.append(SSEUIMessages.Multiple_errors); //$NON-NLS-1$
@@ -104,6 +105,7 @@
 		return EditorsUI.getAnnotationPreferenceLookup().getAnnotationPreference(annotation);
 	}
 
+
 	public String getHoverInfo(ITextViewer viewer, IRegion hoverRegion) {
 		IAnnotationModel model = ((SourceViewer) viewer).getAnnotationModel();
 		if (model != null) {
@@ -182,7 +184,7 @@
 	 * Retreives the preference store If no preference store is currently
 	 * stored, retreive the appropriate preference store
 	 */
-	private IPreferenceStore getPreferenceStore() {
+	protected IPreferenceStore getPreferenceStore() {
 		if (fPreferenceStore == null) {
 			IPreferenceStore sseEditorPrefs = SSEUIPlugin.getDefault().getPreferenceStore();
 			IPreferenceStore baseEditorPrefs = EditorsUI.getPreferenceStore();
@@ -191,7 +193,7 @@
 		return fPreferenceStore;
 	}
 
-	boolean isAnnotationValid(Annotation a) {
+	protected boolean isAnnotationValid(Annotation a) {
 		AnnotationPreference preference = getAnnotationPreference(a);
 		if (preference == null)
 			return false;
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/BestMatchHover.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/BestMatchHover.java
index 5e4eb60..227d229 100644
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/BestMatchHover.java
+++ b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/BestMatchHover.java
@@ -16,10 +16,8 @@
 import java.util.Iterator;
 import java.util.List;
 
-import org.eclipse.jface.text.IInformationControlCreator;
 import org.eclipse.jface.text.IRegion;
 import org.eclipse.jface.text.ITextHover;
-import org.eclipse.jface.text.ITextHoverExtension;
 import org.eclipse.jface.text.ITextViewer;
 import org.eclipse.wst.sse.ui.internal.Logger;
 
@@ -28,11 +26,11 @@
  * processors) Priority of hover help processors is: ProblemHoverProcessor,
  * TagInfoProcessor, AnnotationHoverProcessor
  */
-public class BestMatchHover implements ITextHover, ITextHoverExtension {
+public class BestMatchHover implements ITextHover {
 	private ITextHover fBestMatchHover; // current best match text hover
 	private ITextHover fTagInfoHover; // documentation/information hover
 	private List fTextHovers; // list of text hovers to consider in best
-	// match
+								// match
 
 	public BestMatchHover(ITextHover infotaghover) {
 		fTagInfoHover = infotaghover;
@@ -60,15 +58,6 @@
 		return hoverList;
 	}
 
-	public IInformationControlCreator getHoverControlCreator() {
-		IInformationControlCreator creator = null;
-
-		if (fBestMatchHover instanceof ITextHoverExtension) {
-			creator = ((ITextHoverExtension) fBestMatchHover).getHoverControlCreator();
-		}
-		return creator;
-	}
-
 	/*
 	 * (non-Javadoc)
 	 * 
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/DebugInfoHoverProcessor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/DebugInfoHoverProcessor.java
index 2e292a5..e96ee19 100644
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/DebugInfoHoverProcessor.java
+++ b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/DebugInfoHoverProcessor.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 IBM Corporation 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
@@ -24,9 +24,10 @@
 /**
  * Provides debug hover help
  * 
+ * @author amywu
  * @see org.eclipse.jface.text.ITextHover
  */
-public class DebugInfoHoverProcessor extends AbstractHoverProcessor {
+public class DebugInfoHoverProcessor implements ITextHover {
 	public static final String TRACEFILTER = "debuginfohover"; //$NON-NLS-1$
 	protected IPreferenceStore fPreferenceStore = null;
 
@@ -43,8 +44,7 @@
 		String displayText = null;
 		if ((hoverRegion == null) || (viewer == null) || (viewer.getDocument() == null)) {
 			displayText = null;
-		}
-		else {
+		} else {
 			int offset = hoverRegion.getOffset();
 
 			ITypedRegion region;
@@ -52,12 +52,10 @@
 				region = viewer.getDocument().getPartition(offset);
 				if (region != null) {
 					displayText = region.getType();
-				}
-				else {
+				} else {
 					displayText = "Null Region was returned?!"; //$NON-NLS-1$
 				}
-			}
-			catch (BadLocationException e) {
+			} catch (BadLocationException e) {
 				displayText = "BadLocationException Occurred!?"; //$NON-NLS-1$
 			}
 
@@ -80,13 +78,11 @@
 		ITypedRegion region = null;
 		if ((textViewer == null) || (textViewer.getDocument() == null)) {
 			region = null;
-		}
-		else {
+		} else {
 
 			try {
 				region = textViewer.getDocument().getPartition(offset);
-			}
-			catch (BadLocationException e) {
+			} catch (BadLocationException e) {
 				region = null;
 			}
 		}
diff --git a/bundles/org.eclipse.wst.xml.core/.classpath b/bundles/org.eclipse.wst.xml.core/.classpath
index 16b5963..9ca79ee 100644
--- a/bundles/org.eclipse.wst.xml.core/.classpath
+++ b/bundles/org.eclipse.wst.xml.core/.classpath
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
 	<classpathentry kind="src" path="src-contentmodel"/>
-	<classpathentry kind="src" path="src-search"/>
 	<classpathentry kind="src" path="src-validation"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="src" path="src-catalog"/>
diff --git a/bundles/org.eclipse.wst.xml.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.xml.core/META-INF/MANIFEST.MF
index 89a20ca..e4488b8 100644
--- a/bundles/org.eclipse.wst.xml.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.xml.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.xml.core; singleton:=true
-Bundle-Version: 1.1.0.qualifier
+Bundle-Version: 1.0.2.qualifier
 Bundle-Activator: org.eclipse.wst.xml.core.internal.XMLCorePlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -26,6 +26,7 @@
  org.eclipse.wst.xml.core.internal.contentmodel.util,
  org.eclipse.wst.xml.core.internal.contenttype,
  org.eclipse.wst.xml.core.internal.document,
+ org.eclipse.wst.xml.core.internal.emf2xml,
  org.eclipse.wst.xml.core.internal.encoding,
  org.eclipse.wst.xml.core.internal.modelhandler,
  org.eclipse.wst.xml.core.internal.modelquery,
@@ -48,15 +49,11 @@
  org.eclipse.wst.xml.core.internal.validation,
  org.eclipse.wst.xml.core.internal.validation.core,
  org.eclipse.wst.xml.core.internal.validation.core.logging,
- org.eclipse.wst.xml.core.internal.search,
- org.eclipse.wst.xml.core.internal.search.impl,
- org.eclipse.wst.xml.core.internal.search.quickscan, 
- org.eclipse.wst.xml.core.internal.search.matching,  
+ org.eclipse.wst.xml.core.internal.validation.eclipse,
+ org.eclipse.wst.xml.core.internal.validation.errorcustomization,
  org.w3c.dom,
  org.w3c.dom.ranges,
- org.w3c.dom.traversal,
- org.eclipse.wst.xml.core.internal.emf2xml
- 
+ org.w3c.dom.traversal
 Require-Bundle: org.apache.xerces;visibility:=reexport,
  org.eclipse.wst.sse.core,
  org.eclipse.core.resources,
@@ -69,6 +66,6 @@
  org.eclipse.emf.ecore.edit;resolution:=optional,
  org.eclipse.wst.common.emf;resolution:=optional,
  org.eclipse.emf.ecore.xmi;resolution:=optional,
- org.eclipse.wst.common.emfworkbench.integration;resolution:=optional,
- org.eclipse.wst.common.core
-Eclipse-LazyStart: true; exceptions="org.eclipse.wst.xml.core.internal.contenttype"
+ org.eclipse.wst.common.emfworkbench.integration;resolution:=optional
+ 
+Eclipse-AutoStart: true; exceptions="org.eclipse.wst.xml.core.internal.contenttype"
diff --git a/bundles/org.eclipse.wst.xml.core/build.properties b/bundles/org.eclipse.wst.xml.core/build.properties
index ab4a205..8b7f886 100644
--- a/bundles/org.eclipse.wst.xml.core/build.properties
+++ b/bundles/org.eclipse.wst.xml.core/build.properties
@@ -30,7 +30,6 @@
            src-contentmodel/,\
            src-validation/,\
            src/,\
-           src-emfModelSynch/,\
-           src-search/
+           src-emfModelSynch/
 
 output.. = bin/
diff --git a/bundles/org.eclipse.wst.xml.core/plugin.properties b/bundles/org.eclipse.wst.xml.core/plugin.properties
index e1cdf41..837cda4 100644
--- a/bundles/org.eclipse.wst.xml.core/plugin.properties
+++ b/bundles/org.eclipse.wst.xml.core/plugin.properties
@@ -22,4 +22,5 @@
 XML_Catalog_Contributions_Extension_Point.name=XML Catalog Contributions Extension Point
 XML_Catalog_Contributor_Extension_Point.name=XML Catalog Contributor Extension Point
 XSL_Content_Type_Extension_Element.name=XSL
-XMI_Content_Type=XMI
\ No newline at end of file
+XMI_Content_Type=XMI
+XML_Validation_Error_Customizer.name=XML Validator Error Customizer Extension Point
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/plugin.xml b/bundles/org.eclipse.wst.xml.core/plugin.xml
index d721dbe..4a8f4c4 100644
--- a/bundles/org.eclipse.wst.xml.core/plugin.xml
+++ b/bundles/org.eclipse.wst.xml.core/plugin.xml
@@ -2,6 +2,10 @@
 <?eclipse version="3.0"?>
 <plugin>
 
+   <!-- An extension for contributing a XML validation error customizer. -->
+   <extension-point id="errorCustomizer" name="%XML_Validation_Error_Customizer.name" schema="schema/errorCustomizer.exsd"/>
+
+
 	<extension point="org.eclipse.wst.sse.core.modelHandler">
 		<modelHandler
 			default="true"
diff --git a/bundles/org.eclipse.wst.xml.core/schema/errorCustomizer.exsd b/bundles/org.eclipse.wst.xml.core/schema/errorCustomizer.exsd
new file mode 100644
index 0000000..608f190
--- /dev/null
+++ b/bundles/org.eclipse.wst.xml.core/schema/errorCustomizer.exsd
@@ -0,0 +1,123 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.xml.core">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.wst.xml.core" id="errorCustomizer" name="XML Validation Error Customizer"/>
+      </appInfo>
+      <documentation>
+         The error customizer extension point allows a client to contribute an error customizer for a specific namespace. The error customizer can provide error messages that are more domain specific than the generic error messages provided by the underlying generic XML validator.
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <complexType>
+         <sequence>
+            <element ref="errorCustomizer" minOccurs="1" maxOccurs="unbounded"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  a fully qualified identifier of the target extension point
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  an optional identifier of the extension instance
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  an optional name of the extension instance
+               </documentation>
+               <appInfo>
+                  <meta.attribute translatable="true"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="errorCustomizer">
+      <complexType>
+         <attribute name="namespace" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The namespace for which this error customizer will consider error customizations.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The class that implements &lt;code&gt;org.eclipse.wst.xml.core.internal.validation.errorcustomization.IErrorMessageCustomizer&lt;/code&gt;.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         &lt;b&gt;This extension point is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.&lt;/b&gt;
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         The following is an example of an Error Customizer contribution:
+&lt;pre&gt;
+   &lt;extension
+         id=&quot;sampleErrorCustomizer&quot;
+         name=&quot;Sample Error Customizer&quot;
+         point=&quot;org.eclipse.wst.xml.core.errorCustomizer&quot;&gt;
+      &lt;errorCustomizer
+            namespace=&quot;http://sample.namespace&quot;
+            class=&quot;org.eclipse.wst.xml.core.SampleErrorCustomizer&quot;/&gt;
+   &lt;/extension&gt;
+&lt;/pre&gt;
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
+      <documentation>
+         The supplied class must implement &lt;code&gt;org.eclipse.wst.xml.core.internal.validation.errorcustomization.IErrorMessageCustomizer&lt;/code&gt;.
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         Copyright (c) 2006 IBM Corporation and others.&lt;br&gt;
+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 &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERenderer.java b/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERenderer.java
index d7e6d05..e17cd65 100644
--- a/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERenderer.java
+++ b/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERenderer.java
@@ -47,6 +47,7 @@
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
 import org.w3c.dom.Node;
 
+
 public class EMF2DOMSSERenderer extends EMF2DOMRenderer implements IModelStateListener, IModelLifecycleListener {
 
 	/** The XML DOM model */
@@ -121,12 +122,14 @@
 				try {
 					xmlModelReverted = true;
 					resource.unload();
-				} finally {
+				}
+				finally {
 					if (getXMLModel() != null)
 						getXMLModel().releaseFromEdit();
 				}
 			}
-		} finally {
+		}
+		finally {
 			aboutToChangeNode = null;
 		}
 	}
@@ -148,7 +151,7 @@
 	}
 
 	public void modelDirtyStateChanged(IStructuredModel model, boolean isDirty) {
-		if (!isDirty && resource.isModified()) { //The XMLModel was saved
+		if (!isDirty && resource.isModified()) { // The XMLModel was saved
 			resource.setModified(false);
 			long stamp = WorkbenchResourceHelper.computeModificationStamp(resource);
 			WorkbenchResourceHelper.setSynhronizationStamp(resource, stamp);
@@ -156,21 +159,21 @@
 			IFile aFile = WorkbenchResourceHelper.getFile(resource);
 			synchronizer.preSave(aFile);
 		}
-		if (isDirty) 
+		if (isDirty)
 			resource.setModified(true);
 	}
 
 	public void modelResourceDeleted(IStructuredModel model) {
-		//Do nothing
+		// Do nothing
 	}
 
 	public void modelResourceMoved(IStructuredModel oldModel, IStructuredModel newModel) {
-		//Do nothing
+		// Do nothing
 	}
 
 	/**
-	 * This method is called just prior to being removed from the ResourceSet. Ensure that all
-	 * reference counts to the XMLModel are removed.
+	 * This method is called just prior to being removed from the ResourceSet.
+	 * Ensure that all reference counts to the XMLModel are removed.
 	 */
 	public void preDelete() {
 		if (resource.isLoaded())
@@ -191,10 +194,11 @@
 		// Calling getModelManager() can result in a class cast exception that
 		// should
 		// be ignored.
-		//ModelManager mgr = null;
+		// ModelManager mgr = null;
 		try {
 			getModelManager();
-		} catch (ClassCastException exc) {
+		}
+		catch (ClassCastException exc) {
 			return;
 		}
 		if (xmlModel != null) {
@@ -214,7 +218,8 @@
 	}
 
 	/**
-	 * Insert the method's description here. Creation date: (9/7/2001 10:49:53 AM)
+	 * Insert the method's description here. Creation date: (9/7/2001 10:49:53
+	 * AM)
 	 */
 	public void registerAsModelStateListener() {
 		this.xmlModel.addModelStateListener(this);
@@ -242,7 +247,8 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see com.ibm.etools.emf2xml.Renderer#doSave(java.io.OutputStream, java.util.Map)
+	 * @see com.ibm.etools.emf2xml.Renderer#doSave(java.io.OutputStream,
+	 *      java.util.Map)
 	 */
 	public void doSave(OutputStream outputStream, Map options) throws IOException {
 
@@ -256,12 +262,14 @@
 			try {
 				synchronizer.preSave(aFile);
 				xmlModel.save(aFile);
-			} catch (CoreException ex) {
+			}
+			catch (CoreException ex) {
 				synchronizer.removeFromRecentlySavedList(aFile);
 				Logger.getLogger().logError(ex);
 			}
 			cacheSynchronizationStamp();
-		} finally {
+		}
+		finally {
 			isSaving = false;
 		}
 	}
@@ -287,7 +295,8 @@
 			IFile file = WorkbenchResourceHelper.getFile(getResource());
 			if (file != null) {
 				xmlModelId = getModelManager().calculateId(file);
-			} else {
+			}
+			else {
 				xmlModelId = resource.getURI() + Long.toString(System.currentTimeMillis());
 			}
 		}
@@ -347,15 +356,18 @@
 				}
 				file.create(is, true, null);
 				file.setLocal(true, 1, null);
-			} catch (CoreException e1) {
+			}
+			catch (CoreException e1) {
 				org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError(e1);
-			} finally {
+			}
+			finally {
 				if (null != is) {
 					is.close();
 				}
 			}
 			initializeXMLModel(file, true);
-		} catch (java.io.IOException ex) {
+		}
+		catch (java.io.IOException ex) {
 			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError(UIResourceHandler.getString("Unexpected_IO_exception_occurred_creating_xml_document_1_EXC_"));//$NON-NLS-1$
 			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError(ex);
 		}
@@ -378,7 +390,8 @@
 			}
 			setXMLModelId(getXMLModel().getId());
 			needsToCreateDOM = false;
-		} catch (CoreException e) {
+		}
+		catch (CoreException e) {
 			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError(e);
 			return null;
 		}
@@ -419,18 +432,74 @@
 		}
 	}
 
+
+	/**
+	 * @deprecated use batchModeStart and BatchModeEnd instead
+	 * even if you do not use batchModelStart/End, you still need to 
+	 * use the try/finally pattern documented there. 
+	 */
+
 	public void setBatchMode(boolean isBatch) {
+		
+		// This is some extra processing for clients to know they may be using incorrectly
 		if (isBatch) {
-			isBatchChanges = true;
-			getXMLModel().aboutToChangeModel();
-			setRootNodeAdapterNotificationEnabled(false);
+			if (isBatchChanges) {
+				org.eclipse.wst.xml.core.internal.Logger.log(org.eclipse.wst.xml.core.internal.Logger.INFO, "setBatch was set to true when it was already true. This can be an inidcation of invalid calling order");
+			}
+		}
+
+
+		if (isBatch) {
+			batchModeStart();
 		}
 		else {
-			getXMLModel().changedModel();
-			setRootNodeAdapterNotificationEnabled(true);
-			isBatchChanges = false;
+			batchModeEnd();
 		}
 	}
+
+	/**
+	 * batchModeStart and batchModeEnd is a pair that controls notifications, and tread access. 
+	 * They should always be called in a try/finally block.
+	 * 
+	 * setBatchModel begins the processing where notifications are not sent
+	 * out on each change, but saved up until the endBatchMode called.
+	 * 
+	 * This pair of calls can also, indirectly, "lock" the DOM Model to access
+	 * from only one thread, so it should not be locked for long periods of
+	 * time. That's also why it is important to have the endBatchMode in a
+	 * finally block to be sure it is always called, or the DOM will be left
+	 * in a locked, unusable, state and only shortly away from severere program error.
+	 * 
+	 * <pre><code>Example</code>
+	 * 
+	 * try { 
+	 * 		batchModelStart();
+	 * 		...do a some work ...
+	 * 		}
+	 * 	finally {
+	 * 		endBatchMode();
+	 * 		}
+	 * 
+	 * 
+	 * </pre>
+	 */
+	public void batchModeStart() {
+		isBatchChanges = true;
+		getXMLModel().aboutToChangeModel();
+		setRootNodeAdapterNotificationEnabled(false);
+	}
+
+	/**
+	 * see batchModelEnd
+	 * 
+	 */
+
+	public void batchModeEnd() {
+		getXMLModel().changedModel();
+		setRootNodeAdapterNotificationEnabled(true);
+		isBatchChanges = false;
+	}
+
 	public boolean isBatchMode() {
 		return isBatchChanges;
 	}
@@ -439,8 +508,11 @@
 		EObject root = resource.getRootObject();
 		if (root != null) {
 			EMF2DOMAdapter adapter = (EMF2DOMAdapter) EcoreUtil.getExistingAdapter(root, EMF2DOMAdapter.ADAPTER_CLASS);
-			if (adapter != null)
+			if (adapter != null) {
 				adapter.setNotificationEnabled(b);
+				if (b)
+					adapter.updateDOM();
+			}
 		}
 	}
 
@@ -499,11 +571,11 @@
 
 	public void modelAboutToBeReinitialized(IStructuredModel structuredModel) {
 		// TODO Auto-generated method stub
-		
+
 	}
 
 	public void modelReinitialized(IStructuredModel structuredModel) {
 		// TODO Auto-generated method stub
-		
+
 	}
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/ComponentSearchContributor.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/ComponentSearchContributor.java
deleted file mode 100644
index 6c1dcde..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/ComponentSearchContributor.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation 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:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-
-public abstract class ComponentSearchContributor  {
-
-	protected HashMap declarations;
-
-	protected HashMap references;
-
-	protected String[] namespaces;
-
-	public ComponentSearchContributor() {
-		super();
-	}
-
-	public XMLSearchPattern getDeclarationPattern(QualifiedName componentName) {
-		return (XMLSearchPattern) getDeclarations().get(componentName);
-	}
-
-	protected Map getDeclarations() {
-		if (declarations == null) {
-			initializeDeclarations();
-		}
-		return declarations;
-	}
-
-	protected Map getReferences() {
-		if (references == null) {
-			initializeReferences();
-		}
-		return references;
-	}
-
-	public XMLSearchPattern[] getReferencesPatterns(QualifiedName componentName) {
-		List references = (List) getReferences().get(componentName);
-		if (references != null) {
-			return (XMLSearchPattern[]) references
-					.toArray(new XMLSearchPattern[references.size()]);
-		}
-		return new XMLSearchPattern[0];
-	}
-	
-	
-	public boolean supports(QualifiedName componentName){
-		return getReferencesPatterns(componentName).length > 0 ||
-			getDeclarationPattern(componentName) != null;
-	}
-
-	public String[] getSupportedNamespaces() {
-		return namespaces;
-	}
-
-	protected abstract void initializeDeclarations();
-
-	protected abstract void initializeReferences();
-
-	protected abstract void initializeSupportedNamespaces();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/TargetNamespaceReferencePattern.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/TargetNamespaceReferencePattern.java
deleted file mode 100644
index 6321b7c..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/TargetNamespaceReferencePattern.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation 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:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search;
-
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-
-public class TargetNamespaceReferencePattern extends SearchPattern {
-	
-	String namespaceURI;
-	
-	public TargetNamespaceReferencePattern(int matchRule, String namespaceuri) {
-		super(matchRule);
-		namespaceURI = namespaceuri;
-	}
-	
-	public TargetNamespaceReferencePattern(String namespaceuri) {
-		super();
-		namespaceURI = namespaceuri;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentDeclarationPattern.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentDeclarationPattern.java
deleted file mode 100644
index 19f475b..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentDeclarationPattern.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation 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:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-
-public class XMLComponentDeclarationPattern extends XMLComponentSearchPattern {
-
-	public XMLComponentDeclarationPattern(QualifiedName elementQName, QualifiedName typeQName, int matchRule) {
-		super(null, elementQName, typeQName, matchRule);
-		
-	}
-
-	public XMLComponentDeclarationPattern(IFile file, QualifiedName elementQName, QualifiedName typeQName) {
-		super(file, elementQName, typeQName);
-	}
-	
-	public XMLComponentDeclarationPattern(QualifiedName elementQName, QualifiedName typeQName) {
-		super(null, elementQName, typeQName);
-	}
-
-	
-	
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentReferencePattern.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentReferencePattern.java
deleted file mode 100644
index e68a8a4..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentReferencePattern.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation 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:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-
-public class XMLComponentReferencePattern extends XMLComponentSearchPattern{
-
-	public XMLComponentReferencePattern(IFile file, QualifiedName elementQName, QualifiedName typeQName, int matchRule) {
-		super(file, elementQName, typeQName, matchRule);
-		
-	}
-
-	public XMLComponentReferencePattern(IFile file, QualifiedName elementQName, QualifiedName typeQName) {
-		super(file, elementQName, typeQName);
-		
-	}
-	
-	public XMLComponentReferencePattern(QualifiedName elementQName, QualifiedName typeQName) {
-		super(null, elementQName, typeQName);
-		
-	}
-	
-	
-	
-	
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentSearchPattern.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentSearchPattern.java
deleted file mode 100644
index 7abd04b..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentSearchPattern.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation 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:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.wst.common.core.search.pattern.ComponentSearchPattern;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-
-/**
- * XML component search pattern is a composite pattern that combines XML element pattern.
- *
- */
-public class XMLComponentSearchPattern extends ComponentSearchPattern {
-	
-	/**
-	 * Containing element patterns
-	 */
-	XMLSearchPattern[] children = new XMLSearchPattern[0];
-	
-
-	public XMLComponentSearchPattern(IFile file, QualifiedName elementQName, QualifiedName typeQName, int matchRule) {
-		super(file, elementQName, typeQName, matchRule);
-		
-	}
-
-
-	public XMLComponentSearchPattern(IFile file, QualifiedName elementQName, QualifiedName typeQName) {
-		super(file, elementQName, typeQName);
-		
-	}
-
-	public XMLSearchPattern[] getChildren(){
-		return children;
-	}
-	
-	public void setChildren(XMLSearchPattern[] patterns){
-		children = patterns;
-		
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLSearchParticipant.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLSearchParticipant.java
deleted file mode 100644
index 8657076..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLSearchParticipant.java
+++ /dev/null
@@ -1,376 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation 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:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search;
-
-import java.util.HashMap;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.common.core.search.SearchMatch;
-import org.eclipse.wst.common.core.search.SearchParticipant;
-import org.eclipse.wst.common.core.search.SearchRequestor;
-import org.eclipse.wst.common.core.search.document.ComponentDeclarationEntry;
-import org.eclipse.wst.common.core.search.document.Entry;
-import org.eclipse.wst.common.core.search.document.FileReferenceEntry;
-import org.eclipse.wst.common.core.search.document.SearchDocument;
-import org.eclipse.wst.common.core.search.document.SearchDocumentSet;
-import org.eclipse.wst.common.core.search.pattern.ComponentSearchPattern;
-import org.eclipse.wst.common.core.search.pattern.FileReferencePattern;
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-import org.eclipse.wst.common.core.search.scope.ContentTypeSearchScope;
-import org.eclipse.wst.common.core.search.scope.SearchScope;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.search.impl.IXMLSearchConstants;
-import org.eclipse.wst.xml.core.internal.search.impl.XMLSearchDocument;
-import org.eclipse.wst.xml.core.internal.search.matching.PatternMatcher;
-import org.eclipse.wst.xml.core.internal.search.matching.XMLSearchPatternMatcher;
-import org.eclipse.wst.xml.core.internal.search.quickscan.XMLQuickScan;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- *
- */
-public abstract class XMLSearchParticipant extends SearchParticipant {
-	
-	String[] supportedContentTypes;
-	
-	protected static final boolean debugPerf = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.xml.core.internal.search/perf")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	public XMLSearchParticipant() {
-		super();
-	}
-	
- public  boolean initialize(SearchPattern pattern, String[] contentTypes){
-		
-	    super.initialize(pattern, contentTypes);
-		this.supportedContentTypes = contentTypes;
-		
-		if(pattern instanceof XMLComponentSearchPattern){
-			return true;
-		}
-		return false;
-	}
-
-	
-
-	public SearchDocument getDocument(String documentPath) {
-
-		return new XMLSearchDocument(documentPath, this);
-
-	}
-
-	public String getDescription() {
-		return "XML search participant"; //$NON-NLS-1$
-	}
-
-
-
-	private void locateMatches(SearchPattern pattern, SearchDocument document,
-			SearchRequestor requestor, IProgressMonitor monitor) {
-
-        // TODO... utilize search options (that should get passed down via the SearchEngine)
-        // to specify if accurate source coordinates are req'd if not, simply use the SAX results
-        //
-        if (pattern.getMatchRule() == SearchPattern.R_PATTERN_MATCH)
-        {          
-          IFile file = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(new Path(document.getPath()));
-          // TODO.. don't assume the category is COMPONENT_DECL... handle any arbitarty category
-          Entry[] entries = document.getEntries(IXMLSearchConstants.COMPONENT_DECL, null, 0);
-          for (int i = 0; i < entries.length; i++)
-          {
-            // TODO.. don't assume this is just a component declaration entry            
-            ComponentDeclarationEntry entry = (ComponentDeclarationEntry)entries[i];
-            SearchMatch searchMatch = new SearchMatch(null, 0, 0, file);
-            searchMatch.map.put("name", entry.getName());
-            try
-            {
-              requestor.acceptSearchMatch(searchMatch);
-            }
-            catch (Exception e)
-            {              
-            }
-          }  
-        }
-        else 
-        {  if (document.getModel() instanceof IDOMModel) {
-			IDOMModel domModel = (IDOMModel) document.getModel();
-			IDOMElement contextNode = (IDOMElement) domModel.getDocument()
-					.getDocumentElement();
-			DOMVisitor visitor = new DOMVisitor(document.getPath(), pattern,
-					requestor);
-			visitor.visit(contextNode);
-		}
-        }
-	}
-	
-	private PatternMatcher getAdapter(Object adaptableObject, Class adapterType) {
-		if (PatternMatcher.class.equals(adapterType) &&
-				(adaptableObject instanceof XMLSearchPattern ||
-				adaptableObject instanceof XMLComponentSearchPattern) ) {
-			return new XMLSearchPatternMatcher();
-		} 
-		return null; 
-	}
-
-	private class DOMVisitor {
-
-		String path;
-		SearchPattern pattern;
-		SearchRequestor requestor;
-		PatternMatcher matcher;
-
-		
-		protected DOMVisitor(String path, SearchPattern pattern,
-				SearchRequestor requestor) {
-			super();
-			this.path = path;
-			this.pattern = pattern;
-			
-			matcher = (PatternMatcher)pattern.getAdapter(PatternMatcher.class);
-			if(matcher == null){
-				matcher = getAdapter(pattern, PatternMatcher.class);
-			}
-			this.requestor = requestor;
-		}
-
-		private void visit(Node node) {
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				match((Element)node);
-				NodeList nodeList = node.getChildNodes();
-				for (int i = 0; i < nodeList.getLength(); i++) {
-					Node aNode = nodeList.item(i);
-					visit(aNode);
-				}
-			}
-		}
-
-		private void match(Element node) {
-			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(
-					new Path(path));
-			if(matcher != null){
-				matcher.locateMatches(pattern, file, node, requestor);
-			}
-
-			
-		}
-
-	}
-
-	public SearchScope selectDocumentLocations(SearchPattern pattern, SearchScope scope, IProgressMonitor monitor) {
-		/*
-		 * gate #1: reduce the scope to the files with the content type that
-		 * could be searched using this participant
-		 */ 
-		String[] contentTypes = getSupportedContentTypes();	
-		if(contentTypes != null && contentTypes.length > 0){
-			scope = new ContentTypeSearchScope(scope, contentTypes);
-		}
-		return super.selectDocumentLocations(pattern, scope, monitor);
-	}
-	
-	public abstract ComponentSearchContributor getSearchContributor();
-
-
-	public void beginSearching(SearchPattern pattern) {
-		
-		super.beginSearching(pattern);
-		if(pattern instanceof XMLComponentDeclarationPattern){
-			XMLComponentDeclarationPattern componentPattern = (XMLComponentDeclarationPattern)pattern;
-			XMLSearchPattern childPattern = getSearchContributor().getDeclarationPattern(componentPattern.getMetaName());
-			if(childPattern != null){
-					childPattern.setSearchName(componentPattern.getName().getLocalName());
-					childPattern.setSearchNamespace(componentPattern.getName().getNamespace());
-	     			componentPattern.setChildren(new XMLSearchPattern[]{childPattern});
-			}
-			
-		}
-		else if(pattern instanceof XMLComponentReferencePattern){
-			XMLComponentReferencePattern componentPattern = (XMLComponentReferencePattern)pattern;
-			XMLSearchPattern[] childPatterns = getSearchContributor().getReferencesPatterns(componentPattern.getMetaName());
-			for (int i = 0; i < childPatterns.length; i++) {
-				XMLSearchPattern childPattern = childPatterns[i];
-				childPattern.setSearchName(componentPattern.getName().getLocalName());
-				childPattern.setSearchNamespace(componentPattern.getName().getNamespace());				
-			}
-			componentPattern.setChildren(childPatterns);
-			
-		}
-	}
-	
-	
-	/**
-	 * The intend of this method is to limit the search to the files that have content 
-	 * which can be searched for the given pattern. It is called from 
-	 * {@link #selectDocumentLocations(SearchPattern, SearchScope, IProgressMonitor)}
-	 * 
-	 * @param pattern the search pattern that is searched for
-	 * @return content type's unique identifiers that could be searched for the given pattern.
-	 */
-	public String[] getSupportedContentTypes(){
-		return supportedContentTypes;
-	}
-
-	public void populateSearchDocument(SearchDocument document, SearchPattern pattern)
-	{
-		PatternMatcher matcher = (PatternMatcher)pattern.getAdapter(PatternMatcher.class);
-		if(matcher == null){
-			matcher = getAdapter(pattern, PatternMatcher.class);
-		}
-		XMLQuickScan.populateSearchDocument(document, matcher, pattern);		
-	}
-
-	public void locateMatches(SearchDocumentSet documentSet, SearchPattern pattern, SearchScope scope, SearchRequestor requestor, IProgressMonitor monitor) throws CoreException
-	{
-		long time = System.currentTimeMillis();
-		
-		// TODO: use the file reference entries in the documents to reduce the scope to the referenced files only
-		// SearchDocument[] documents = documentSet.getSearchDocuments(id);
-                
-        // check to see if the search pattern is qualified by a file location
-        // if this is the case then we can use file scoping rules to prune the matches
-        IFile targetFile = null;
-        if (pattern instanceof ComponentSearchPattern)
-        {
-          ComponentSearchPattern componentSearchPattern = (ComponentSearchPattern)pattern;
-          targetFile = componentSearchPattern.getFile();                                       
-        }		
-        
-		// here we should have in scope only referenced files
-		IFile[] files = scope.enclosingFiles();  
-		for (int i = 0; i < files.length; i++)
-		{
-			IFile file = files[i];
-			String path = file.getLocation().toString();
-			SearchDocument document = documentSet.getSearchDocument(path, id); 
-			Entry[] entries = document.getEntries(getSearchEntryCategory(pattern), null, 0);           
-			if(entries != null && entries.length > 0)
-            {
-              //for (int j = 0; j < entries.length; j++)
-              //{
-              //  Entry entry = entries[j];
-                //System.out.println("entry " + entry.getCategory() + " " + entry.getKey() + " " + entry.getClass().getName());                 
-              //}  
-              
-              boolean isInScope = true;
-              if (targetFile != null)
-              {
-                try
-                {
-                  isInScope = isLinked(documentSet, "file:///" + path, "file:///" + targetFile.getLocation().toString());
-                  //if (path.endsWith("CancelSelection.wsdl")  && path.indexOf("clone1") != -1)
-                  //{
-                  //  fileReferenceTable.debug(qualifiedPath, 0, 5);
-                  //}                   
-                }
-                catch (Exception e)
-                {
-                  e.printStackTrace();
-                }
-              }              
-              if (isInScope)
-              { 
-			    this.locateMatches(pattern, document, requestor, monitor);
-              }  
-            }
-		}
-		
-		
-		if (debugPerf)
-		{
-			System.out
-					.println(""
-							+ getDescription()
-							+ ": " + (System.currentTimeMillis() - time) + "ms for locateMatches"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		
-	}
-    
-    private boolean isLinked(SearchDocumentSet set, String source, String target)
-    {
-      return isLinked(set, source, target, new HashMap());
-    }
-    
-    private boolean isLinked(SearchDocumentSet set, String source, String target, HashMap visited)
-    {
-      if (source.equals(target))
-        return true;
-      
-      String fileProtocol = "file:///";            
-      if (source.startsWith(fileProtocol))
-      {    
-        
-      SearchDocument document = set._tempGetSearchDocumetn(source.substring(fileProtocol.length()));      
-      if (document != null)
-      {        
-        URIResolver uriResolver = URIResolverPlugin.createResolver();        
-        Entry[] entries = document.getEntries(IXMLSearchConstants.REF, null, 0);
-        String[] resolveEntry = new String[entries.length];        
-        for (int j = 0; j < entries.length; j++)
-        {
-          Entry entry = entries[j];
-          if (entry instanceof FileReferenceEntry)
-          {
-            FileReferenceEntry fileReferenceEntry = (FileReferenceEntry)entry;
-            // TODO.. record an utilize the public id from the fileReferenceEntry
-            //
-            if (fileReferenceEntry.getRelativeFilePath() != null)
-            {  
-              String resolvedURI = uriResolver.resolve(source, null, fileReferenceEntry.getRelativeFilePath());
-              resolveEntry[j] = resolvedURI;
-              if (resolvedURI.equals(target))
-              {
-                return true;
-              }             
-            }  
-          }
-        }
-        // now see if there's an indirect link from the source to the target
-        // we keep track of the nodes we've already visited to avoid cycles
-        if (visited.get(source) == null)
-        {
-          visited.put(source, Boolean.TRUE);
-          for (int j = 0; j < entries.length; j++)
-          {                     
-            String resolvedURI = resolveEntry[j];
-            if (resolvedURI != null && isLinked(set, resolveEntry[j], target, visited))                
-              return true;            
-          }    
-        }                      
-      }            
-      } 
-      return false;
-    }
-    
-   
-    
-	public static String getSearchEntryCategory(SearchPattern pattern){
-		if(pattern instanceof XMLComponentDeclarationPattern){
-			return IXMLSearchConstants.COMPONENT_DECL;
-		}
-		else if(pattern instanceof XMLComponentReferencePattern){
-			return IXMLSearchConstants.COMPONENT_REF;
-		}
-		else if(pattern instanceof FileReferencePattern){
-		   return IXMLSearchConstants.COMPONENT_REF;
-		}
-		return null;
-	}   
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLSearchPattern.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLSearchPattern.java
deleted file mode 100644
index 1fb55d7..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLSearchPattern.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation 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:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search;
-
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-
-public class XMLSearchPattern extends SearchPattern{
-	
-	private String elementNamespace = null;
-	private String elementName = null;
-	private String attributeName = null;
-	private String searchName = null;
-	private String searchNamespace = null;
-	
-	public XMLSearchPattern(String elementNamespace, String elementName, String attributeName) {
-		super();
-		this.attributeName = attributeName;
-		this.elementName = elementName;
-		this.elementNamespace = elementNamespace;
-	}
-	
-	public XMLSearchPattern(){
-		
-	}
-	
-	public String getAttributeName() {
-		return attributeName;
-	}
-
-	public String getElementName() {
-		return elementName;
-	}
-
-	public String getElementNamespace() {
-		return elementNamespace;
-	}
-
-	public String getSearchName() {
-		return searchName;
-	}
-
-	public String getSearchNamespace() {
-		return searchNamespace;
-	}
-
-	public void setSearchName(String searchName) {
-		this.searchName = searchName;
-	}
-
-	public void setSearchNamespace(String searchNamespace) {
-		this.searchNamespace = searchNamespace;
-	}
-
-	public void setAttributeName(String attributeName) {
-		this.attributeName = attributeName;
-	}
-
-	public void setElementName(String elementName) {
-		this.elementName = elementName;
-	}
-
-	public void setElementNamespace(String elementNamespace) {
-		this.elementNamespace = elementNamespace;
-	}
-	
-
-	
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/IXMLSearchConstants.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/IXMLSearchConstants.java
deleted file mode 100644
index d160d81..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/IXMLSearchConstants.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation 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:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search.impl;
-
-public interface IXMLSearchConstants
-{
-		String REF= "outLink"; //$NON-NLS-1$
-		String COMPONENT_DECL = "componentDecl"; //$NON-NLS-1$
-		String COMPONENT_REF = "componentDecl"; //$NON-NLS-1$
-	
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/Messages.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/Messages.java
deleted file mode 100644
index d7ae22f..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/Messages.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation 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:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search.impl;
-
-import java.text.MessageFormat;
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	
-	private static final String BUNDLE_NAME = "org.eclipse.wst.xml.core.internal.search.messages";//$NON-NLS-1$
-
-	
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-	private Messages() {
-		// Do not instantiate
-	}
-	
-	/**
-	 * Bind the given message's substitution locations with the given string values.
-	 * 
-	 * @param message the message to be manipulated
-	 * @return the manipulated String
-	 */
-	public static String bind(String message) {
-		return bind(message, null);
-	}
-	
-	/**
-	 * Bind the given message's substitution locations with the given string values.
-	 * 
-	 * @param message the message to be manipulated
-	 * @param binding the object to be inserted into the message
-	 * @return the manipulated String
-	 */
-	public static String bind(String message, Object binding) {
-		return bind(message, new Object[] {binding});
-	}
-
-	/**
-	 * Bind the given message's substitution locations with the given string values.
-	 * 
-	 * @param message the message to be manipulated
-	 * @param binding1 An object to be inserted into the message
-	 * @param binding2 A second object to be inserted into the message
-	 * @return the manipulated String
-	 */
-	public static String bind(String message, Object binding1, Object binding2) {
-		return bind(message, new Object[] {binding1, binding2});
-	}
-
-	/**
-	 * Bind the given message's substitution locations with the given string values.
-	 * 
-	 * @param message the message to be manipulated
-	 * @param bindings An array of objects to be inserted into the message
-	 * @return the manipulated String
-	 */
-	public static String bind(String message, Object[] bindings) {
-		return MessageFormat.format(message, bindings);
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/XMLSearchDocument.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/XMLSearchDocument.java
deleted file mode 100644
index 7e70485..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/XMLSearchDocument.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation 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:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search.impl;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.common.core.search.document.Entry;
-import org.eclipse.wst.common.core.search.document.SearchDocument;
-import org.eclipse.wst.sse.core.internal.provisional.StructuredModelManager;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.search.XMLSearchParticipant;
-
-public class XMLSearchDocument extends SearchDocument {
-	
-	IDOMModel model;
-	Map entries = new HashMap(); // category -> set (entry)	
-
-	public XMLSearchDocument(String documentPath, XMLSearchParticipant participant) {
-		super(documentPath, participant);
-	}
-
-	public Object getModel() {
-		if(model == null){
-            //System.out.println("creating DOM for " + getPath());
-			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(new Path(getPath()));
-			if(file != null){
-				try {
-					model = (IDOMModel)StructuredModelManager.getModelManager().getModelForRead(file);
-				} catch (IOException e) {
-					e.printStackTrace();
-				} catch (CoreException e) {
-					e.printStackTrace();
-				}
-			
-			}
-		}
-		return model;
-	}
-
-	public Entry[] getEntries(String category, String key, int matchRule)
-	{
-		// TODO use matchRule
-		Set results = new HashSet();
-		if(category != null){
-			Set values = (Set)entries.get(category);
-			if(values == null){
-				return new Entry[0];
-			}
-			if(key == null || "".equals(key) || "*".equals(key)){
-				// entries with any key in the given category
-				results.addAll(values);
-			}
-			else{
-				// entries with the specified key in the given category
-				for (Iterator iter = values.iterator(); iter.hasNext();)
-				{
-					Entry entry = (Entry) iter.next();
-					if(key.equals(entry.getKey())){
-						results.add(entry);
-					}
-				}
-			}
-			
-		}
-		return (Entry[]) results.toArray(new Entry[results.size()]);
-	}
-
-	public void putEntry(Entry entry)
-	{
-		if(entry.getCategory() != null){
-			Set values = (Set)entries.get(entry.getCategory());
-			if(values == null){
-				entries.put(entry.getCategory(), values=new HashSet());
-			}
-			values.add(entry);
-		}
-		
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/PatternMatcher.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/PatternMatcher.java
deleted file mode 100644
index 7590f57..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/PatternMatcher.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation 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:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search.matching;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.core.search.SearchMatch;
-import org.eclipse.wst.common.core.search.SearchParticipant;
-import org.eclipse.wst.common.core.search.SearchRequestor;
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-
-/**
- * This class contains matching implementation.  
- * <p>
- * Subclasses of the PatternMatches should provide an implementation of the specific pattern matching.
- * </p>
- * <p>
- * Subclasses of the PatternMatches should be set as adapters for the patterns that they match.
- * </p>
- * An implementation of {@link SearchParticipant#selectDocumentLocations()} will call 
- * { @link PatternMatcher#matches() } on the adapter on pattern matcher.
- * 
- * An implementation of {@link SearchParticipant#locateMatches()} will call 
- * { @link PatternMatcher#locateMatches() } on the adapter on pattern matcher.
- *
- */
-public abstract class PatternMatcher {
-	
-	
-	/**
-	 * This method does dive actual match location to the requestor if there are matches
-	 */
-	public abstract void locateMatches(SearchPattern pattern, IFile file, Element element, SearchRequestor requestor);
-
-	/**
-	 * This method only answers if the pattern matches element, it does not give actual match location
-	 */
-	public abstract boolean matches(SearchPattern pattern, Object element);
-    
-    protected SearchMatch createSearchMatch(IFile file, Attr attributeNode)
-    {
-        int start = 0;
-        int length = 0;
-        if(attributeNode instanceof IDOMAttr){
-            IDOMAttr domAttr = (IDOMAttr)attributeNode;
-            start = domAttr.getValueRegionStartOffset();
-            length = domAttr.getValueRegionText().length();
-        }
-        SearchMatch match = new SearchMatch(attributeNode, start, length, file);
-        return match;
-    }
-	
-	protected void addMatch(SearchPattern pattern, IFile file, Attr attributeNode, SearchRequestor requestor) {
-        //System.out.println("addMatch " + pattern + " " + attributeNode.getName() + "=" + attributeNode.getValue());
-		if (attributeNode != null) {
-				SearchMatch match = createSearchMatch(file, attributeNode);                
-				if(requestor != null){
-					try {
-						requestor.acceptSearchMatch(match);
-					} catch (CoreException e) {
-						//do nothing
-					}
-				}
-		}
-	}
-
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/SAXSearchElement.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/SAXSearchElement.java
deleted file mode 100644
index 330d144..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/SAXSearchElement.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation 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:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search.matching;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.xml.sax.Attributes;
-
-public class SAXSearchElement{
-	Attributes attributes;
-	String elementName;
-	String elementNamespace;
-	Map namespaceMap = new HashMap(); // Map of string prefix keys and namespace
-	String targetNamespace = "";
-	
-	public SAXSearchElement() {
-		super();
-	}
-	public Attributes getAttributes() {
-		return attributes;
-	}
-	public String getElementName() {
-		return elementName;
-	}
-	public String getElementNamespace() {
-		return elementNamespace;
-	}
-	public Map getNamespaceMap() {
-		return namespaceMap;
-	}
-	public String getTargetNamespace() {
-		return targetNamespace;
-	}
-	public void setAttributes(Attributes attributes) {
-		this.attributes = attributes;
-	}
-	public void setElementName(String elementName) {
-		this.elementName = elementName;
-	}
-	public void setElementNamespace(String elementNamespace) {
-		this.elementNamespace = elementNamespace;
-	}
-	public void setNamespaceMap(Map namespaceMap) {
-		this.namespaceMap = namespaceMap;
-	}
-	public void setTargetNamespace(String targetNamespace) {
-		this.targetNamespace = targetNamespace;
-	}
-	
-	
-	
-	
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/XMLSearchPatternMatcher.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/XMLSearchPatternMatcher.java
deleted file mode 100644
index 5723060..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/XMLSearchPatternMatcher.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation 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:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search.matching;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.wst.common.core.search.SearchMatch;
-import org.eclipse.wst.common.core.search.SearchRequestor;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-import org.eclipse.wst.xml.core.internal.search.XMLComponentSearchPattern;
-import org.eclipse.wst.xml.core.internal.search.XMLSearchPattern;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-public class XMLSearchPatternMatcher extends PatternMatcher{
-	
-
-	protected String computeNamespaceForPrefix(Element element, String prefix)
-	{
-	  String result = null;
-	  for (Node node = element; node != null; node = node.getParentNode())
-	  {
-		if (node.getNodeType() == Node.ELEMENT_NODE)
-		{
-		  Element e = (Element)node;
-		  String attributeName = (prefix != null && prefix.length() > 0) ? ("xmlns:" + prefix) : "xmlns"; 
-		  result = e.getAttribute(attributeName);
-		  if (result != null)
-		  {
-			 break;  
-		  }	  
-		}	
-	  }	  
-	  return result;
-	}
-	
-
-	protected void initialize(XMLSearchPattern pattern, Element domElement) {
-	
-			pattern.setElementName(domElement.getLocalName());
-			pattern.setElementNamespace(domElement.getNamespaceURI());
-			String actualValue = domElement.getAttribute(pattern.getAttributeName());
-			 if(actualValue != null){
-					int n = actualValue.indexOf(":");
-					if(n > 0){
-						String prefix = actualValue.substring(0, n);
-						pattern.setSearchName(actualValue.substring(n+1));      
-						
-						String namespace = computeNamespaceForPrefix(domElement, prefix);
-						pattern.setSearchNamespace(namespace);
-					
-					}
-					else {
-						pattern.setSearchName(actualValue);
-						pattern.setSearchNamespace(domElement.getOwnerDocument().getDocumentElement().getAttribute("targetNamespace"));
-					}
-			    }
-		
-	}
-	
-	protected void initialize(XMLSearchPattern pattern, SAXSearchElement saxElement) {
-		
-		pattern.setElementName(saxElement.getElementName());
-		pattern.setElementNamespace(saxElement.getElementNamespace());
-		String actualValue = saxElement.getAttributes().getValue(pattern.getAttributeName());
-		 if(actualValue != null){
-				int n = actualValue.indexOf(":");
-				if(n > 0){
-					String prefix = actualValue.substring(0, n);
-					pattern.setSearchName(actualValue.substring(n+1));
-					pattern.setSearchNamespace((String)saxElement.getNamespaceMap().get(prefix));
-				
-				}
-				else {
-					pattern.setSearchName(actualValue);
-					pattern.setSearchNamespace(saxElement.getTargetNamespace());
-				}
-		    }
-	
-	}
-	
-	XMLSearchPattern searchPattern;
-	
-	public XMLSearchPatternMatcher() {
-		super();
-		
-	}
-
-	
-
-	
-	/**
-	 * This method does dive actual match location to the requestor if there are matches
-	 */
-	
-	public void locateMatches(SearchPattern pattern, IFile file, Element element, SearchRequestor requestor) {
-		if(pattern instanceof XMLComponentSearchPattern){
-			XMLSearchPattern[] childPatterns = ((XMLComponentSearchPattern)pattern).getChildren();
-			for (int i = 0; i < childPatterns.length; i++) {
-				PatternMatcher matcher = (PatternMatcher)childPatterns[i].getAdapter(PatternMatcher.class);
-				if(matcher == null){
-					matcher = this;
-				}
-				if(matcher != null){
-					matcher.locateMatches(childPatterns[i], file, element, requestor);
-				}
-			}
-		}
-		else if(pattern instanceof XMLSearchPattern){
-			if(matches(pattern, element)){
-				Attr attribute = element.getAttributeNode(((XMLSearchPattern)pattern).getAttributeName());
-				addMatch(pattern, file, attribute, requestor);
-			}
-		
-		}
-	}
-	
-	/**
-	 * This method only answers if the pattern matches element, it does not give actual match location
-	 */
-	public boolean matches(SearchPattern pattern, Object element){
-		if(pattern instanceof XMLComponentSearchPattern){
-			XMLSearchPattern[] childPatterns = ((XMLComponentSearchPattern)pattern).getChildren();
-			for (int i = 0; i < childPatterns.length; i++) {
-				PatternMatcher matcher = (PatternMatcher)childPatterns[i].getAdapter(PatternMatcher.class);
-				if(matcher == null){
-					matcher = this;
-				}
-				if(matcher != null){
-					if(matcher.matches(childPatterns[i], element)){
-						return true;
-					}
-				}
-				
-			}
-		}
-		else if(pattern instanceof XMLSearchPattern){
-			
-			XMLSearchPattern possibleMatch = new XMLSearchPattern();
-			possibleMatch.setAttributeName(((XMLSearchPattern)pattern).getAttributeName());
-			if(element instanceof Element){
-				initialize(possibleMatch, (Element)element);
-			}
-			else if(element instanceof SAXSearchElement){
-				initialize(possibleMatch, (SAXSearchElement)element);
-			}
-			searchPattern = (XMLSearchPattern)pattern;
-			return matchesPattern(possibleMatch);
-		}
-		return false;
-	}
-	
-	protected boolean matchesPattern(SearchPattern pattern) {
-		if(searchPattern != null && pattern instanceof XMLSearchPattern){
-			XMLSearchPattern decodedPattern = (XMLSearchPattern)pattern;
-            if(searchPattern.getElementName().equals(decodedPattern.getElementName()) &&
-					searchPattern.getElementNamespace().equals(decodedPattern.getElementNamespace())){
-				if(searchPattern.getSearchName() == null)
-                {  
-                  return false;
-                }
-                else if ("*".equals(searchPattern.getSearchName()))
-                {
-                  return true;
-                }  
-                else if(searchPattern.getSearchNamespace() == null){
-					return searchPattern.getSearchName().equals(decodedPattern.getSearchName());
-				}
-				else{
-					return searchPattern.getSearchName().equals(decodedPattern.getSearchName()) &&
-					searchPattern.getSearchNamespace().equals(decodedPattern.getSearchNamespace());
-				}
-			}
-		}
-		
-		return false;
-	}
-	
-    
-    protected SearchMatch createSearchMatch(IFile file, Attr attributeNode)
-    {
-      SearchMatch match = super.createSearchMatch(file, attributeNode);
-      // todo... remove this ugly hack!!
-      if ("name".equals(attributeNode.getName()))
-      {
-        QualifiedName qualifiedName = new QualifiedName("todo-compute-targetNamespace", attributeNode.getValue());
-        match.map.put("name", qualifiedName);
-      }
-      //Element element = attributeNode.getOwnerDocument().getDocumentElement();
-      //if (element.getAttribute("targetNamespace"))
-      //{        
-      //}  
-      return match;
-    }
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScan.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScan.java
deleted file mode 100644
index 34e7dc5..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScan.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.search.quickscan;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import org.eclipse.wst.common.core.search.document.SearchDocument;
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-import org.eclipse.wst.xml.core.internal.search.matching.PatternMatcher;
-import org.xml.sax.InputSource;
-import org.xml.sax.XMLReader;
-
-/**
- * 
- */
-public class XMLQuickScan
-{
-
-	public static String getTargetNamespace(String fullFilePath)
-	{
-		XMLQuickScanContentHandler handler = new XMLQuickScanContentHandler();
-		parseFile(fullFilePath, handler);
-		return handler.getTargetNamespace();
-	}
-	
-	/*
-	 * Returns information about matches encountered based on the criteria
-	 * provided.
-	 */
-	public static boolean hasMatch(String fullFilePath, PatternMatcher matcher, SearchPattern pattern)
-	{
-		XMLQuickScanContentHandler handler = new XMLQuickScanContentHandler(matcher, pattern);
-		parseFile(fullFilePath, handler);
-		return handler.hasMatch();
-	}
-	
-	public static boolean populateSearchDocument(SearchDocument document, PatternMatcher matcher, SearchPattern pattern)
-	{
-		XMLQuickScanContentHandler handler = new XMLQuickScanContentHandler(document, matcher, pattern);
-		parseFile(document.getPath(), handler);
-		return handler.hasMatch();
-	}
-
-	private static void parseFile(String fullFilePath,
-			XMLQuickScanContentHandler handler)
-	{
-		FileInputStream inputStream = null;
-		try
-		{
-			inputStream = new FileInputStream(new File(fullFilePath));
-			SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
-			
-			XMLReader reader = parser.getXMLReader();
-			reader.setFeature("http://xml.org/sax/features/namespaces", true);
-			reader.setContentHandler(handler);
-			reader.parse(new InputSource(inputStream));
-		} catch (Exception e)
-		{
-			// skip the file
-		} 
-		finally{
-			if(inputStream != null){
-				try {
-					inputStream.close();
-				} catch (IOException e) {
-					// can not do much 
-				}
-			}
-			
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScanContentHandler.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScanContentHandler.java
deleted file mode 100644
index c653eee..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScanContentHandler.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation 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:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search.quickscan;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.eclipse.wst.common.core.search.document.ComponentDeclarationEntry;
-import org.eclipse.wst.common.core.search.document.ComponentReferenceEntry;
-import org.eclipse.wst.common.core.search.document.FileReferenceEntry;
-import org.eclipse.wst.common.core.search.document.SearchDocument;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-import org.eclipse.wst.xml.core.internal.search.XMLComponentDeclarationPattern;
-import org.eclipse.wst.xml.core.internal.search.XMLComponentReferencePattern;
-import org.eclipse.wst.xml.core.internal.search.impl.IXMLSearchConstants;
-import org.eclipse.wst.xml.core.internal.search.matching.PatternMatcher;
-import org.eclipse.wst.xml.core.internal.search.matching.SAXSearchElement;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * This class is a SAX content handler, it should be recycled before scanning a file for the new SearchPattern.
- *
- */
-public class XMLQuickScanContentHandler extends DefaultHandler
-{
-	private Map namespaceMap = new HashMap(); // Map of string prefix keys and namespace
-	private String targetNamespace = "";
-	
-	private SearchPattern pattern;
-	private SearchDocument document;  // we'll add useful entries in the search document as we parsing
-	private SAXSearchElement searchElement = new SAXSearchElement();
-
-	private boolean hasMatch = false;
-	private  StringBuffer currentPath = new StringBuffer();
-	private PatternMatcher matcher;
-	
-	public static final String XMLSCHEMA_NAMESPACE = "http://www.w3.org/2001/XMLSchema";
-
-	
-	public XMLQuickScanContentHandler(PatternMatcher matcher, SearchPattern pattern) {
-		super();
-		this.pattern = pattern;
-		this.matcher = matcher;
-	}
-	
-	public XMLQuickScanContentHandler(SearchDocument document, PatternMatcher matcher, SearchPattern pattern) {
-		super();
-		this.pattern = pattern;
-		this.matcher = matcher;
-		this.document = document;
-	}
-	
-	public XMLQuickScanContentHandler() {
-		super();
-	}
-
-	public void startElement(String uri, String localName, String qName,
-			Attributes attributes) throws SAXException
-	{
-	
-		currentPath.append("/" + localName);
-
-		// Search for targetNamespace if we haven't encountered it yet.
-		if (targetNamespace.equals(""))
-		{
-			int nAttributes = attributes.getLength();
-			for (int i = 0; i < nAttributes; i++)
-			{
-				if ("targetNamespace".equals(attributes.getQName(i)))
-				{
-					targetNamespace = attributes.getValue(i);
-					break;
-				}
-			}
-		}
-		
-		// collect link info
-		if("import".equals(localName) && XMLSCHEMA_NAMESPACE.equals(uri)){
-			FileReferenceEntry documentEntry = new FileReferenceEntry();
-			documentEntry.setCategory(IXMLSearchConstants.REF);
-			documentEntry.setKey("import");
-			String namespace = attributes.getValue("namespace");
-			String location = attributes.getValue("schemaLocation");
-			documentEntry.setPublicIdentifier(namespace);
-			documentEntry.setRelativeFilePath(location);            
-			document.putEntry(documentEntry);
-		}
-		if(("redefine".equals(localName)|| "include".equals(localName)) &&
-				XMLSCHEMA_NAMESPACE.equals(uri)){
-			FileReferenceEntry documentEntry = new FileReferenceEntry();
-			documentEntry.setCategory(IXMLSearchConstants.REF);
-			documentEntry.setKey("include");
-			String location = attributes.getValue("schemaLocation");
-			documentEntry.setPublicIdentifier(uri);
-			documentEntry.setRelativeFilePath(location);
-			document.putEntry(documentEntry);
-		}
-		
-		
-        // issue (cs) you may want to try perf measurements to compate reusing the same
-        // instance of a SAXSearchElement instead of newing one each time 
-		//XMLSearchPattern.SAXSearchElement searchElement = new XMLSearchPattern.SAXSearchElement();
-		searchElement.setElementName(localName);
-		searchElement.setElementNamespace(uri);
-		searchElement.setAttributes(attributes);
-		searchElement.setNamespaceMap(namespaceMap);
-		searchElement.setTargetNamespace(targetNamespace);
-	
-
-		if(matcher != null){
-			if(matcher.matches(pattern, searchElement)){
-				hasMatch = true;
-				if(pattern instanceof XMLComponentReferencePattern){
-					ComponentReferenceEntry documentEntry = new ComponentReferenceEntry();
-					documentEntry.setCategory(IXMLSearchConstants.COMPONENT_REF);
-					QualifiedName name = new QualifiedName(uri, localName);
-					documentEntry.setKey(name.toString());
-					documentEntry.setName(name);
-					document.putEntry(documentEntry);
-				}
-				else if(pattern instanceof XMLComponentDeclarationPattern){
-					ComponentDeclarationEntry documentEntry = new ComponentDeclarationEntry();
-					documentEntry.setCategory(IXMLSearchConstants.COMPONENT_DECL);
-                    QualifiedName name = new QualifiedName(targetNamespace, attributes.getValue("name"));
-					QualifiedName metaName = new QualifiedName(uri, localName);                    
-					documentEntry.setKey(name.toString());
-                    documentEntry.setName(name);
-					documentEntry.setMetaName(metaName);
-					document.putEntry(documentEntry);
-				}
-			}
-		}
-		
-	}
-	
-	public void endElement(String uri, String localName, String qName)
-			throws SAXException
-	{
-		int slashIndex = currentPath.lastIndexOf("/");
-		currentPath.delete(slashIndex, currentPath.length());
-	}
-
-	/**
-	 * Callback for SAX parser
-	 * 
-	 * @see org.xml.sax.ContentHandler#startPrefixMapping(java.lang.String,
-	 *      java.lang.String)
-	 */
-	public void startPrefixMapping(String arg0, String arg1)
-			throws SAXException
-	{
-		if (arg0 != null && arg0.length() > 0)
-		{
-			this.namespaceMap.put(arg0, arg1);
-		}
-	}
-
-	public String getTargetNamespace() {
-		return targetNamespace;
-	}
-
-	public void setTargetNamespace(String targetNamespace) {
-		this.targetNamespace = targetNamespace;
-	}
-
-	public boolean hasMatch() {
-		return hasMatch;
-	}
-
-	
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidator.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidator.java
index a8bc261..103f874 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidator.java
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidator.java
@@ -19,11 +19,11 @@
 import java.io.Reader;
 import java.io.StringReader;
 import java.net.ConnectException;
+import java.net.URL;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.Hashtable;
 import java.util.List;
-
 import org.apache.xerces.impl.XMLErrorReporter;
 import org.apache.xerces.parsers.StandardParserConfiguration;
 import org.apache.xerces.xni.NamespaceContext;
@@ -36,11 +36,14 @@
 import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
 import org.eclipse.wst.xml.core.internal.validation.core.LazyURLInputStream;
 import org.eclipse.wst.xml.core.internal.validation.core.logging.LoggerFactory;
+import org.eclipse.wst.xml.core.internal.validation.errorcustomization.ErrorCustomizationManager;
+import org.xml.sax.Attributes;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
 import org.xml.sax.XMLReader;
 import org.xml.sax.ext.DeclHandler;
+import org.xml.sax.helpers.DefaultHandler;
 
 /**
  * This class performs validation using a xerces sax parser.  
@@ -52,6 +55,7 @@
 {
   protected URIResolver uriResolver = null;
   //protected MyEntityResolver entityResolver = null;
+  protected ErrorCustomizationManager errorCustomizationManager;
   protected Hashtable ingoredErrorKeyTable = new Hashtable();
 
   protected static final String IGNORE_ALWAYS = "IGNORE_ALWAYS"; //$NON-NLS-1$
@@ -115,6 +119,25 @@
       reader.setFeature("http://xml.org/sax/features/namespaces", valinfo.isNamespaceEncountered());               //$NON-NLS-1$
       reader.setFeature("http://xml.org/sax/features/validation", valinfo.isGrammarEncountered());  //$NON-NLS-1$
       reader.setFeature("http://apache.org/xml/features/validation/schema", valinfo.isGrammarEncountered()); //$NON-NLS-1$
+      reader.setContentHandler(new DefaultHandler()
+      {
+        public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
+          
+          if (errorCustomizationManager == null)
+          {
+            errorCustomizationManager = new ErrorCustomizationManager();
+//            if (errorCustomizationManager.isDocumentNamespaceApplicable(uri))
+//            {
+//              errorCustomizationManager.setActive(true);
+//            }  
+          }
+          errorCustomizationManager.startElement(uri, localName);                    
+        }
+        
+        public void endElement(String uri, String localName, String qName) throws SAXException {
+          errorCustomizationManager.endElement(uri, localName);
+        }
+      });      
       
       // MH make sure validation works even when a customer entityResolver is note set (i.e. via setURIResolver())
       if (entityResolver != null)
@@ -342,6 +365,23 @@
       {                     
         String physical = uriResolver.resolvePhysicalLocation(rid.getBaseSystemId(), id, location);
         is = new XMLInputSource(rid.getPublicId(), location, location);
+        
+        // This block checks that the file exists. If it doesn't we need to throw
+        // an exception so Xerces will report an error. note: This may not be
+        // necessary with all versions of Xerces but has specifically been 
+        // experienced with the version included in IBM's 1.4.2 JDK.
+        InputStream isTemp = null;
+        try
+        {
+          isTemp = new URL(physical).openStream();
+        }
+        finally
+        {
+          if(isTemp != null)
+          {
+            isTemp.close();
+          }
+        }
         is.setByteStream(new LazyURLInputStream(physical));      
       }
     }
@@ -526,6 +566,7 @@
 		      if (reportError)
 		      {
 		        super.reportError(domain, key, arguments, severity);
+		        errorCustomizationManager.considerReportedError(valinfo, key, arguments);
 		      }
 		    }
 		};
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationMessage.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationMessage.java
index 807ea9a..d364d24 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationMessage.java
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationMessage.java
@@ -191,5 +191,11 @@
   {
 	  return this.messageArguments;
   }
+  
+
+  public void setMessage(String message)
+  {
+    this.message = message;
+  }  
                                      
 }
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/ErrorCustomizationPluginRegistryReader.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/ErrorCustomizationPluginRegistryReader.java
new file mode 100644
index 0000000..ab6c170
--- /dev/null
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/ErrorCustomizationPluginRegistryReader.java
@@ -0,0 +1,81 @@
+/*******************************************************************************
+ * Copyright (c) 2006 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.core.internal.validation.eclipse;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.wst.xml.core.internal.validation.errorcustomization.ErrorCustomizationRegistry;
+import org.eclipse.wst.xml.core.internal.validation.errorcustomization.ErrorMessageCustomizerDelegate;
+import org.osgi.framework.Bundle;
+/**
+ * This class reads the plug-in manifests and registers each extension
+ * error customizer with the ErrorCustomizationRegistry.
+ */
+public class ErrorCustomizationPluginRegistryReader {
+	
+	  protected static final String PLUGIN_ID = "org.eclipse.wst.xml.core";
+	  protected static final String ATT_CLASS = "class";
+	  protected static final String ATT_NAMESPACE = "namespace";
+	  protected static final String EXTENSION_POINT_ID = "errorCustomizer";
+	  protected static final String tagName = EXTENSION_POINT_ID;
+
+	  /**
+	   * Read from plugin registry for the errorcustomizer extension.
+	   */
+	  public void readRegistry()
+	  {
+	    IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+	    IExtensionPoint point = pluginRegistry.getExtensionPoint(PLUGIN_ID, EXTENSION_POINT_ID);
+	    if (point != null)
+	    {
+	      IConfigurationElement[] elements = point.getConfigurationElements();
+	      for (int i = 0; i < elements.length; i++)
+	      {
+	        readElement(elements[i]);
+	      }
+	    }
+	  }
+
+	  /**
+	   * readElement() - parse and deal with an extension like:
+	   *
+	   * <extension point="org.eclipse.wst.xml.core.errorCustomizer"
+	   *            id="specificErrorCustomizer"
+	   *            name="Specific Error Customizer">
+	   *   <errorCustomizer
+	   *   			namespace="http://specificnamespace"
+	   *   			class="org.eclipse.wst.xml.core.MySpecificErrorCustomizer/>
+	   * </extension>
+	   */
+	  protected void readElement(IConfigurationElement element)
+	  {
+	    if (element.getName().equals(tagName))
+	    {
+	      String errorCustomizerClass = element.getAttribute(ATT_CLASS);
+	      String namespace = element.getAttribute(ATT_NAMESPACE);
+
+	      if (errorCustomizerClass != null)
+	      {
+	        try
+	        {
+	          Bundle pluginBundle = Platform.getBundle(element.getDeclaringExtension().getNamespace());
+	          ErrorMessageCustomizerDelegate delegate = new ErrorMessageCustomizerDelegate(pluginBundle, errorCustomizerClass);
+	          ErrorCustomizationRegistry.getInstance().addErrorMessageCustomizer(namespace, delegate);
+	        }
+	        catch (Exception e)
+	        {
+	        }
+	      }
+	    }
+	  }
+}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ElementInformation.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ElementInformation.java
new file mode 100644
index 0000000..eb1cca2
--- /dev/null
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ElementInformation.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2006 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.core.internal.validation.errorcustomization;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * A simple class to store information about an XML element.
+ */
+public class ElementInformation
+{
+  protected String localName;
+  protected String namespace;
+  protected List children = new ArrayList();
+
+  /**
+   * Constructor.
+   * 
+   * @param uri
+   * 		The namespace URI of the element.
+   * @param localName
+   * 		The local name of the element.
+   */
+  public ElementInformation(String uri, String localName)
+  {
+    this.localName = localName;
+    this.namespace = uri;
+  }
+  
+  /**
+   * Get the namespace of this element.
+   * 
+   * @return
+   * 		The namespace of this element.
+   */
+  public String getNamespace()
+  {
+	return namespace;
+  }
+  
+  /**
+   * Get the local name of this element.
+   * 
+   * @return
+   * 		The local name of this element.
+   */
+  public String getLocalname()
+  {
+	return localName;
+  }
+  
+  /**
+   * Get the list of children of this element. The list contains
+   * ElementInformation objects representing the children of this element.
+   * 
+   * @return
+   * 		The list of children of this element.
+   */
+  public List getChildren()
+  {
+	return children;
+  }
+}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorCustomizationManager.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorCustomizationManager.java
new file mode 100644
index 0000000..745acc0
--- /dev/null
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorCustomizationManager.java
@@ -0,0 +1,110 @@
+/*******************************************************************************
+ * Copyright (c) 2006 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.core.internal.validation.errorcustomization;
+
+import java.util.Stack;
+
+import org.eclipse.wst.xml.core.internal.validation.core.ValidationInfo;
+import org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage;
+
+/**
+ * This class tracks the context of the parsed document to help identify error
+ * conditions
+ */
+public class ErrorCustomizationManager
+{
+  protected Stack elementInformationStack = new Stack();
+  protected ErrorMessageInformation messageForConsideration;
+
+  /**
+   * This method should be called in the start element method of the XML validator's
+   * content handler.
+   * 
+   * @param uri
+   * 		The namespace of the element.
+   * @param localName
+   * 		The local name of the element.
+   */
+  public void startElement(String uri, String localName)
+  { 
+    ElementInformation elementInformation = new ElementInformation(uri, localName);
+    if (elementInformationStack.size() > 0)
+    {
+      ElementInformation parent = (ElementInformation) elementInformationStack.peek();
+      parent.children.add(elementInformation);
+    }
+    elementInformationStack.push(elementInformation);
+  }
+
+  /**
+   * This method should be called in the end element method of the XML validator's
+   * content handler.
+   * 
+   * @param uri
+   * 		The namespace of the element.
+   * @param localName
+   * 		The local name of the element.
+   */
+  public void endElement(String uri, String localName)
+  {   
+    if (elementInformationStack.size() > 0)
+    {
+      ElementInformation elementInformation = (ElementInformation)elementInformationStack.pop();
+      if (messageForConsideration != null)
+      {  
+        IErrorMessageCustomizer[] customizers = ErrorCustomizationRegistry.getInstance().getCustomizers(elementInformation.getNamespace());
+        int numCustomizers = customizers.length;
+        for(int i = 0; i < numCustomizers; i++)
+        {
+          String message = customizers[i].customizeMessage(elementInformation, messageForConsideration.key, messageForConsideration.arguments);
+          if(message != null)
+          {
+        	messageForConsideration.message.setMessage(message);
+        	break;
+          }
+        }
+      }  
+    }
+  }
+
+  /**
+   * Consider the reported error for customization.
+   * 
+   * @param valInfo
+   * 		The current ValidationInfo object containing validation specific information.
+   * @param key
+   * 		The key related to the message.
+   * @param arguments
+   * 		Any message arguments.
+   */
+  public void considerReportedError(ValidationInfo valInfo, String key, Object[] arguments)
+  {
+    messageForConsideration = null;
+    ValidationMessage[] messages = valInfo.getValidationMessages();
+    if (messages.length > 0)
+    {  
+      messageForConsideration = new ErrorMessageInformation();
+      messageForConsideration.key = key;
+      messageForConsideration.arguments = arguments;
+      messageForConsideration.message = messages[messages.length - 1]; 
+    }
+  }
+  
+  /**
+   * A simple class to hold error message information.
+   */
+  public class ErrorMessageInformation
+  {
+	public String key = null;
+	public Object[] arguments = null;
+	public ValidationMessage message = null;
+  }
+}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorCustomizationRegistry.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorCustomizationRegistry.java
new file mode 100644
index 0000000..db0d0ce
--- /dev/null
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorCustomizationRegistry.java
@@ -0,0 +1,97 @@
+/*******************************************************************************
+ * Copyright (c) 2006 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.core.internal.validation.errorcustomization;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * The error customization regsitry manages all registered
+ * IErrorMessageCustomizers by namespace.
+ */
+public class ErrorCustomizationRegistry 
+{
+  protected static ErrorCustomizationRegistry registry = null;
+  protected Map customizers = new HashMap();
+  
+  /**
+   * Restricted constructor in keeping with the singleton pattern.
+   */
+  protected ErrorCustomizationRegistry()
+  {
+  }
+  
+  /**
+   * Get the one and only instance of the registry.
+   * 
+   * @return
+   * 		The one and only instance of the registry.
+   */
+  public static ErrorCustomizationRegistry getInstance()
+  {
+	if(registry == null)
+	{
+	  registry = new ErrorCustomizationRegistry();
+	}
+	return registry;
+  }
+  
+  /**
+   * Add a customizer to the registry. 
+   * 
+   * @param namespace
+   * 		The namespace the customizer will act on.
+   * @param customizer
+   * 		The error customizer to register.
+   */
+  public void addErrorMessageCustomizer(String namespace, IErrorMessageCustomizer customizer)
+  {
+	// To register a customizer for the no namespace use an empty string.
+	if(namespace == null)
+	{
+	  namespace = "";
+	}
+	List customizersForNS = (List)customizers.get(namespace);
+	if(customizersForNS == null)
+	{
+	  customizersForNS = new ArrayList();
+	  customizers.put(namespace, customizersForNS);
+	}
+	if(customizer != null)
+	{
+	  customizersForNS.add(customizer);
+	}
+  }
+  
+  /**
+   * Get the error customizers for a given namespace.
+   * 
+   * @param namespace
+   * 		The namespace for which to retrieve the customizers.
+   * @return
+   * 		An array of customizers registered for this namespace.
+   */
+  public IErrorMessageCustomizer[] getCustomizers(String namespace)
+  {
+	if(namespace == null)
+	{
+	  namespace = "";
+	}
+	List customizersForNS = (List)customizers.get(namespace);
+	if(customizersForNS == null)
+	{
+	  customizersForNS = new ArrayList();
+	}
+	return (IErrorMessageCustomizer[])customizersForNS.toArray(new IErrorMessageCustomizer[customizersForNS.size()]);
+  }
+}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorMessageCustomizerDelegate.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorMessageCustomizerDelegate.java
new file mode 100644
index 0000000..444d86d
--- /dev/null
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorMessageCustomizerDelegate.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2006 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.core.internal.validation.errorcustomization;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
+import org.osgi.framework.Bundle;
+
+/**
+ * An error message customizer delegate is used to allow for
+ * lazy loading of error customizers.
+ *
+ */
+public class ErrorMessageCustomizerDelegate implements IErrorMessageCustomizer
+{
+  protected Bundle bundle = null;
+  protected String classname = null;
+  protected IErrorMessageCustomizer customizer = null;
+  
+  public ErrorMessageCustomizerDelegate(Bundle bundle, String classname)
+  {
+	this.bundle = bundle;
+	this.classname = classname;
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.xml.core.internal.validation.errorcustomization.IErrorMessageCustomizer#customizeMessage(org.eclipse.wst.xml.core.internal.validation.errorcustomization.ElementInformation, java.lang.String, java.lang.Object[])
+   */
+  public String customizeMessage(ElementInformation elementInfo, String errorKey, Object[] arguments) 
+  {
+	if(customizer == null)
+	{
+	  loadCustomizer();
+	}
+	if(customizer == null)
+	{
+	  return null;
+	}
+	return customizer.customizeMessage(elementInfo, errorKey, arguments);
+  }
+  
+  /**
+   * Load the customizer class.
+   */
+  protected void loadCustomizer()
+  {
+	try
+	{
+	  Class customizerClass = bundle.loadClass(classname);
+	  customizer = (IErrorMessageCustomizer)customizerClass.newInstance();
+	}
+	catch(Exception e)
+	{
+	  XMLCorePlugin.getDefault().getLog().log(
+			  new Status(IStatus.WARNING, 
+					     XMLCorePlugin.getDefault().getBundle().getSymbolicName(), 
+					     IStatus.OK, 
+					     "The XML validator error customizer was unable to load class " + classname, e));
+	}
+  }
+  
+  
+}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/IErrorMessageCustomizer.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/IErrorMessageCustomizer.java
new file mode 100644
index 0000000..ac6d1e0
--- /dev/null
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/IErrorMessageCustomizer.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.core.internal.validation.errorcustomization;
+
+/**
+ * An error message customizer will be called by the XML validator to customize
+ * XML validation errors for a given namespace. The customizer can be used to 
+ * create clearer errors for specific application domains.
+ */
+public interface IErrorMessageCustomizer 
+{
+  /**
+   * Return a customized error message for the given element. Null should be returned
+   * if the message should not be customized.
+   * 
+   * @param elementInformation
+   * 		The information about the element for which to customize the error.
+   * @param errorKey
+   * 		The key for the error for which to replace the message.
+   * @param arguments
+   * 		Arguments related the the error message.
+   * @return
+   * 		A customized error message or null if this customizer will not customize the message.
+   */
+  public String customizeMessage(ElementInformation elementInfo, String errorKey, Object[] arguments);
+}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceInitializer.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceInitializer.java
index 5b9634c..7211076 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceInitializer.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceInitializer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 IBM Corporation 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
@@ -28,14 +28,14 @@
 	 */
 	public void initializeDefaultPreferences() {
 		IEclipsePreferences node = new DefaultScope().getNode(XMLCorePlugin.getDefault().getBundle().getSymbolicName());
-
+		
 		// formatting preferences
 		node.putInt(XMLCorePreferenceNames.LINE_WIDTH, 72);
 		node.putBoolean(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES, false);
 		node.put(XMLCorePreferenceNames.INDENTATION_CHAR, XMLCorePreferenceNames.TAB);
 		node.putInt(XMLCorePreferenceNames.INDENTATION_SIZE, 1);
 		node.putBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS, false);
-
+		
 		// cleanup preferences
 		node.putBoolean(XMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS, true);
 		node.putBoolean(XMLCorePreferenceNames.INSERT_REQUIRED_ATTRS, true);
@@ -47,9 +47,5 @@
 		node.put(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$
 		node.put(CommonEncodingPreferenceNames.OUTPUT_CODESET, "UTF-8");//$NON-NLS-1$
 		node.put(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$
-
-		// this could be made smarter by actually looking up the content
-		// type's valid extensions
-		node.put(XMLCorePreferenceNames.DEFAULT_EXTENSION, "xml"); //$NON-NLS-1$
 	}
 }
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceNames.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceNames.java
index 0106616..74d0f7f 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceNames.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceNames.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 IBM Corporation 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
@@ -20,17 +20,7 @@
 	private XMLCorePreferenceNames() {
 		// empty private constructor so users cannot instantiate class
 	}
-
-	/**
-	 * The default extension to use when none is specified in the New File
-	 * Wizard.
-	 * <p>
-	 * Value is of type <code>String</code>.
-	 * </p>
-	 */
-	public static final String DEFAULT_EXTENSION = "defaultExtension"; //$NON-NLS-1$
-
-
+	
 	/**
 	 * The maximum width of a line before a line split is needed.
 	 * <p>
@@ -38,7 +28,7 @@
 	 * </p>
 	 */
 	public static final String LINE_WIDTH = "lineWidth";//$NON-NLS-1$
-
+	
 	/**
 	 * Indicates if all blanks lines should be cleared during formatting.
 	 * Blank lines will be kept when false.
@@ -91,7 +81,7 @@
 	 * </p>
 	 */
 	public static final String SPLIT_MULTI_ATTRS = "splitMultiAttrs";//$NON-NLS-1$
-
+	
 	/**
 	 * Indicates whether or not cleanup processor should format source.
 	 * <p>
@@ -146,8 +136,8 @@
 	 * delimiters.
 	 * <p>
 	 * Value is of type <code>String</code>.<br />
-	 * Possible values: {CR, CRLF, LF, NO_TRANSLATION}
-	 * </p>
+	 * Possible values: {CR, CRLF, LF, NO_TRANSLATION} 
+	 * </p> 
 	 * 
 	 */
 	public static final String CLEANUP_EOL_CODE = "cleanupEOLCode";//$NON-NLS-1$
diff --git a/bundles/org.eclipse.wst.xml.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.xml.ui/META-INF/MANIFEST.MF
index d70052d..8c3d7af 100644
--- a/bundles/org.eclipse.wst.xml.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.xml.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.xml.ui; singleton:=true
-Bundle-Version: 1.0.100.qualifier
+Bundle-Version: 1.0.2.qualifier
 Bundle-Activator: org.eclipse.wst.xml.ui.internal.XMLUIPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/XMLValidator.java b/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/XMLValidator.java
index 0f67568..1f3cb21 100644
--- a/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/XMLValidator.java
+++ b/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/XMLValidator.java
@@ -15,6 +15,7 @@
 
 import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
 import org.eclipse.wst.xml.core.internal.validation.XMLValidationReport;
+import org.eclipse.wst.xml.core.internal.validation.eclipse.ErrorCustomizationPluginRegistryReader;
 
 /**
  * An XML validator specific to Eclipse. This validator will wrap the internal
@@ -50,6 +51,7 @@
   {
     validator = new org.eclipse.wst.xml.core.internal.validation.XMLValidator();
     validator.setURIResolver(URIResolverPlugin.createResolver());
+    new ErrorCustomizationPluginRegistryReader().readRegistry();
   }
   /**
    * Validate the file at the given URI.
diff --git a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/NewModelWizard.java b/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/NewModelWizard.java
index c2163a1..f0ae26b 100644
--- a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/NewModelWizard.java
+++ b/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/NewModelWizard.java
@@ -277,8 +277,9 @@
 			setErrorMessage(XMLWizardsMessages._ERROR_BAD_FILENAME_EXTENSION);
 			return false;
 		}
-		// no fileExtension, let's check for this file with default file extension
-		fullFileName += defaultFileExtension;
+		// no fileExtension, let's check for this file with an .xml
+		// extension
+		fullFileName += ".xml"; //$NON-NLS-1$
 		if ((getContainerFullPath() != null) && (getContainerFullPath().isEmpty() == false) && (getFileName().compareTo("") != 0)) //$NON-NLS-1$
 		{
 			Path fullPath = new Path(getContainerFullPath().toString() + '/' + fullFileName);
diff --git a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/NewXMLWizard.java b/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/NewXMLWizard.java
index 1bd994c..f645262 100644
--- a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/NewXMLWizard.java
+++ b/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/NewXMLWizard.java
@@ -18,7 +18,6 @@
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Preferences;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jface.util.Assert;
@@ -50,14 +49,12 @@
 import org.eclipse.ui.part.PageBook;
 import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard;
 import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
 import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
 import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMContentBuilder;
 import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
-import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
 import org.eclipse.wst.xml.ui.internal.Logger;
 import org.eclipse.wst.xml.ui.internal.dialogs.NamespaceInfoErrorHelper;
 import org.eclipse.wst.xml.ui.internal.dialogs.SelectFileOrXMLCatalogIdPanel;
@@ -152,9 +149,7 @@
 		newFilePage.setTitle(XMLWizardsMessages._UI_WIZARD_CREATE_XML_FILE_HEADING);
 		newFilePage.setDescription(XMLWizardsMessages._UI_WIZARD_CREATE_XML_FILE_EXPL);
 		newFilePage.defaultName = (grammarURI != null) ? URIHelper.removeFileExtension(URIHelper.getLastSegment(grammarURI)) : "NewFile"; //$NON-NLS-1$
-		Preferences preference = XMLCorePlugin.getDefault().getPluginPreferences();
-		String ext = preference.getString(XMLCorePreferenceNames.DEFAULT_EXTENSION);
-		newFilePage.defaultFileExtension = "."+ext; //$NON-NLS-1$
+		newFilePage.defaultFileExtension = ".xml"; //$NON-NLS-1$
 		newFilePage.filterExtensions = filePageFilterExtensions;
 		addPage(newFilePage);
 
@@ -257,7 +252,7 @@
 			if (result) {
 				fileName = newFilePage.getFileName();
 				if ((new Path(fileName)).getFileExtension() == null) {
-					newFilePage.setFileName(fileName.concat(newFilePage.defaultFileExtension));
+					newFilePage.setFileName(fileName.concat(".xml")); //$NON-NLS-1$
 				}
 
 				IFile newFile = newFilePage.createNewFile();
diff --git a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/wizardResource.properties b/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/wizardResource.properties
index 42393a0..b4e5252 100644
--- a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/wizardResource.properties
+++ b/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/wizardResource.properties
@@ -57,7 +57,7 @@
 _UI_INVALID_GRAMMAR_ERROR             = Invalid Grammar
 
 !NewModelWizard
-_ERROR_BAD_FILENAME_EXTENSION         = The file name must end in one of the following extensions {0}.
+_ERROR_BAD_FILENAME_EXTENSION         = The specified file name must have a recognized extension (e.g. '.xml').
 _ERROR_FILE_ALREADY_EXISTS            = The same file already exists.
 _ERROR_ROOT_ELEMENT_MUST_BE_SPECIFIED = A root element must be specified.
 _UI_LABEL_ERROR_SCHEMA_INVALID_INFO   = The schema file contains errors. Open it in the XML schema editor for details.
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIMessages.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIMessages.java
index 274bed4..0c470f9 100644
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIMessages.java
+++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIMessages.java
@@ -213,8 +213,6 @@
 	public static String EOL_Unix;
 	public static String EOL_Mac;
 	public static String EOL_NoTranslation;
-	public static String XMLFilesPreferencePage_ExtensionLabel;
-	public static String XMLFilesPreferencePage_ExtensionError;
 	public static String Content_assist_UI_;
 	public static String Automatically_make_suggest_UI_;
 	public static String Prompt_when_these_characte_UI_;
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPluginResources.properties b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPluginResources.properties
index 9eb2de8..fed4031 100644
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPluginResources.properties
+++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPluginResources.properties
@@ -240,8 +240,6 @@
 EOL_Unix=UNIX
 EOL_Mac=Mac
 EOL_NoTranslation=No translation
-XMLFilesPreferencePage_ExtensionLabel=Add this suffix (if not specified):
-XMLFilesPreferencePage_ExtensionError=Suffix must be one of the following {0}.
 ## XML Source preference page
 Content_assist_UI_=Content assist
 Automatically_make_suggest_UI_=Automatically ma&ke suggestions
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AbstractContentAssistProcessor.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AbstractContentAssistProcessor.java
index 7333cbb..033c0d1 100644
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AbstractContentAssistProcessor.java
+++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AbstractContentAssistProcessor.java
@@ -149,7 +149,7 @@
 			if (attributes != null) {
 				for (int i = 0; i < attributes.getLength(); i++) {
 					CMAttributeDeclaration attrDecl = (CMAttributeDeclaration) attributes.item(i);
-					
+					// CMVC 246618
 					int isRequired = 0;
 					if (attrDecl.getUsage() == CMAttributeDeclaration.REQUIRED) {
 						isRequired = XMLRelevanceConstants.R_REQUIRED;
@@ -180,7 +180,8 @@
 						if (attrAtLocationHasValue) {
 							// only propose the name
 							proposedText = getRequiredName(node, attrDecl);
-							proposal = new CustomCompletionProposal(proposedText, contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), proposedText.length(), attrImage, proposedText, null, proposedInfo, XMLRelevanceConstants.R_XML_ATTRIBUTE_NAME + isRequired, true);		
+							proposal = new CustomCompletionProposal(proposedText, contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), proposedText.length(), attrImage, proposedText, null, proposedInfo, XMLRelevanceConstants.R_XML_ATTRIBUTE_NAME + isRequired, true); // CMVC
+							// 269884
 						}
 						// no attribute exists or is elsewhere, generate
 						// minimally
@@ -211,7 +212,6 @@
 	}
 
 	protected void addAttributeValueProposals(ContentAssistRequest contentAssistRequest) {
-		
 		IDOMNode node = (IDOMNode) contentAssistRequest.getNode();
 
 		// Find the attribute region and name for which this position should
@@ -288,14 +288,8 @@
 							String possibleValue = (String) j.next();
 							currentValid = currentValid || possibleValue.equals(currentValue);
 							if (matchString.length() == 0 || possibleValue.startsWith(matchString)) {
-								
-								String rString = "\"" + possibleValue + "\""; //$NON-NLS-2$//$NON-NLS-1$
-								int rOffset = contentAssistRequest.getReplacementBeginPosition();
-								int rLength = contentAssistRequest.getReplacementLength();
-								int cursorAfter = possibleValue.length() + 1;
-								String displayString = "\"" + possibleValue + "\""; //$NON-NLS-2$//$NON-NLS-1$
-								
-								CustomCompletionProposal proposal = new CustomCompletionProposal(rString, rOffset, rLength, cursorAfter, image, displayString, null, proposedInfo, XMLRelevanceConstants.R_XML_ATTRIBUTE_VALUE);
+								CustomCompletionProposal proposal = new CustomCompletionProposal("\"" + possibleValue + "\"", //$NON-NLS-2$//$NON-NLS-1$
+											contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), possibleValue.length() + 1, image, possibleValue, null, proposedInfo, XMLRelevanceConstants.R_XML_ATTRIBUTE_VALUE);
 								contentAssistRequest.addProposal(proposal);
 							}
 						}
@@ -305,14 +299,12 @@
 					// FIXED values
 					String value = attrDecl.getAttrType().getImpliedValue();
 					if (value != null && value.length() > 0) {
-						String rValue = "\"" + value + "\"";//$NON-NLS-2$//$NON-NLS-1$
-						CustomCompletionProposal proposal = new CustomCompletionProposal(rValue, 
-									contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), rValue.length() + 1, image, rValue, null, proposedInfo, XMLRelevanceConstants.R_XML_ATTRIBUTE_VALUE);
+						CustomCompletionProposal proposal = new CustomCompletionProposal("\"" + value + "\"", //$NON-NLS-2$//$NON-NLS-1$
+									contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), value.length() + 1, image, value, null, proposedInfo, XMLRelevanceConstants.R_XML_ATTRIBUTE_VALUE);
 						contentAssistRequest.addProposal(proposal);
 						if (currentValue.length() > 0 && !value.equals(currentValue)) {
-							rValue = "\"" + currentValue + "\""; //$NON-NLS-2$//$NON-NLS-1$
-							proposal = new CustomCompletionProposal(rValue,
-										contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), rValue.length() + 1, image, rValue, null, proposedInfo, XMLRelevanceConstants.R_XML_ATTRIBUTE_VALUE);
+							proposal = new CustomCompletionProposal("\"" + currentValue + "\"", //$NON-NLS-2$//$NON-NLS-1$
+										contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), currentValue.length() + 1, image, currentValue, null, proposedInfo, XMLRelevanceConstants.R_XML_ATTRIBUTE_VALUE);
 							contentAssistRequest.addProposal(proposal);
 						}
 					}
@@ -323,9 +315,8 @@
 				proposedInfo = getAdditionalInfo(null, elementDecl);
 				CustomCompletionProposal proposal = null;
 				if (currentValue != null && currentValue.length() > 0) {
-					String rValue = "\"" + currentValue + "\""; //$NON-NLS-2$//$NON-NLS-1$
-					proposal = new CustomCompletionProposal(rValue,
-								contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), 1, image, rValue, //$NON-NLS-2$//$NON-NLS-1$
+					proposal = new CustomCompletionProposal("\"" + currentValue + "\"", //$NON-NLS-2$//$NON-NLS-1$
+								contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), 1, image, "\"" + currentValue + "\"", //$NON-NLS-2$//$NON-NLS-1$
 								null, proposedInfo, XMLRelevanceConstants.R_XML_ATTRIBUTE_VALUE);
 					contentAssistRequest.addProposal(proposal);
 				}
@@ -486,6 +477,7 @@
 		boolean addProposal = false;
 
 		if (node.getNodeType() == Node.ELEMENT_NODE) {
+			// fix for CMVC 261790
 			// ////////////////////////////////////////////////////////////////////////////////////
 			IStructuredDocument sDoc = (IStructuredDocument) fTextViewer.getDocument();
 			IStructuredDocumentRegion xmlEndTagOpen = sDoc.getRegionAtCharacterOffset(contentAssistRequest.getReplacementBeginPosition());
@@ -544,8 +536,9 @@
 				addProposal = true;
 			}
 		}
+		// fix for CMVC 261790
 		// ////////////////////////////////////////////////////////////////////////////////////
-		// sometimes the node is not null, but
+		// fix for CMVC 263163, sometimes the node is not null, but
 		// getNodeValue() is null, put in a null check
 		else if (node.getNodeValue() != null && node.getNodeValue().indexOf("</") != -1) { //$NON-NLS-1$
 			// the case where "</" is started, but the nodes comes in as a
@@ -560,6 +553,7 @@
 				addProposal = true;
 			}
 		}
+		// end fix for CMVC 261790
 		// ////////////////////////////////////////////////////////////////////////////////////
 		else if (node.getNodeType() == Node.DOCUMENT_NODE) {
 			setErrorMessage(UNKNOWN_CONTEXT);
@@ -628,6 +622,8 @@
 
 		// make sure xmlpi is root element
 		// don't want doctype proposal if XMLPI isn't first element...
+		// CMVC 242943
+		// CMVC 245532
 		Node first = owningDocument.getFirstChild();
 		boolean xmlpiIsFirstElement = (first != null && first.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE);
 		boolean insertDoctype = xmlpiIsFirstElement;
@@ -642,10 +638,10 @@
 				}
 				// skip white space and text
 				while ((child = child.getNextSibling()) != null && (child.getNodeType() == Node.TEXT_NODE)) {
-					// just skipping
 				}
 				// check if theres a node inbetween XMLPI and cursor position
 				if (child != null && child instanceof IDOMNode) {
+					// CMVC 257486
 					if (contentAssistRequest.getReplacementBeginPosition() >= ((IDOMNode) child).getEndOffset() || !xmlpiIsFirstElement) {
 						insertDoctype = false;
 					}
@@ -710,6 +706,7 @@
 					// prompt with the closer for the start tag and an end tag
 					// if one is not present
 					if (node.getEndStructuredDocumentRegion() == null) {
+						// FIX FOR CMVC 247482
 						// make sure tag name is actually what it thinks it
 						// is...(eg. <%@ vs. <jsp:directive)
 						IStructuredDocumentRegion sdr = contentAssistRequest.getDocumentRegion();
@@ -768,6 +765,7 @@
 		Node parent = contentAssistRequest.getParent();
 		String error = null;
 
+		// CMVC #242943 shouldn't have proposals before XMLPI
 		// (nsd) This is only valid at the document element level
 		// only valid if it's XML (check added 2/17/2004)
 		if (parent != null && parent.getNodeType() == Node.DOCUMENT_NODE && ((IDOMDocument) parent).isXMLType() && !isCursorAfterXMLPI(contentAssistRequest)) {
@@ -776,7 +774,8 @@
 		// only want proposals if cursor is after doctype...
 		if (!isCursorAfterDoctype(contentAssistRequest))
 			return;
-		
+
+		// CMVC 248081
 		// fix for meta-info comment nodes.. they currently "hide" other
 		// proposals because the don't
 		// have a content model (so can't propose any children..)
@@ -861,15 +860,13 @@
                             }
                               
 						}
-
-						//int markupAdjustment = getContentGenerator().getMinimalStartTagLength(parent, elementDecl);
+						// Account for the &lt; and &gt;. If attributes were
+						// added, the cursor will be placed
+						// at the offset before of the first character of the
+						// first attribute name.
+						int markupAdjustment = getContentGenerator().getMinimalStartTagLength(parent, elementDecl);
 						if (beginsWith(tagname, matchString)) {
 							String proposedText = getRequiredText(parent, elementDecl);
-							
-							// https://bugs.eclipse.org/bugs/show_bug.cgi?id=89811
-							// place cursor in first empty quotes
-							int markupAdjustment = getCursorPositionForProposedText(proposedText);
-							
 							String proposedInfo = getAdditionalInfo(parentDecl, elementDecl);
                             int relevance = isStrictCMNodeSuggestion ? XMLRelevanceConstants.R_STRICTLY_VALID_TAG_INSERTION : XMLRelevanceConstants.R_TAG_INSERTION; 
 							CustomCompletionProposal proposal = new CustomCompletionProposal(proposedText, contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), markupAdjustment, image, tagname, null, proposedInfo, relevance);
@@ -973,16 +970,8 @@
 								cursorAdjustment = proposedText.length();
 							}
 							else {
-								// https://bugs.eclipse.org/bugs/show_bug.cgi?id=89811
-								StringBuffer sb = new StringBuffer();
-								getContentGenerator().generateTag(parent, ed, sb);
-								// since it's a name proposal, assume '<' is already there
-								// only return the rest of the tag
-								proposedText = sb.toString().substring(1);
-								cursorAdjustment = getCursorPositionForProposedText(proposedText);
-								
-								//cursorAdjustment = proposedText.length() + 1;
-								//proposedText += "></" + getRequiredName(parent, elementDecl) + ">"; //$NON-NLS-2$//$NON-NLS-1$
+								cursorAdjustment = proposedText.length() + 1;
+								proposedText += "></" + getRequiredName(parent, elementDecl) + ">"; //$NON-NLS-2$//$NON-NLS-1$
 							}
 						}
 					}
@@ -1015,53 +1004,36 @@
 					continue;
 				String proposedText = null;
 				int cursorAdjustment = 0;
-				if(ed instanceof CMElementDeclaration) {
-					// proposedText = getRequiredName(parent, ed);
-					StringBuffer sb = new StringBuffer();
-					getContentGenerator().generateTag(parent, (CMElementDeclaration)ed, sb);
-					// tag starts w/ '<', but we want to compare to name
-					proposedText = sb.toString().substring(1);
-					
-					if (!beginsWith(proposedText, matchString))
-						continue;
-					
-					cursorAdjustment = getCursorPositionForProposedText(proposedText);
-				
+				proposedText = getRequiredName(parent, ed);
+				if (!beginsWith(proposedText, matchString))
+					continue;
+				if ((node != null && node.getAttributes() != null && node.getAttributes().getLength() > 0) || ((node.getNodeType() != Node.TEXT_NODE) && node.getFirstStructuredDocumentRegion().isEnded())) {
+					cursorAdjustment = proposedText.length();
+				}
+				else {
+					cursorAdjustment = proposedText.length();
 					if (ed instanceof CMElementDeclaration) {
 						CMElementDeclaration elementDecl = (CMElementDeclaration) ed;
 						if (elementDecl.getContentType() == CMElementDeclaration.EMPTY) {
 							proposedText += getContentGenerator().getStartTagClose(parent, elementDecl);
 							cursorAdjustment = proposedText.length();
 						}
+						else {
+							cursorAdjustment = proposedText.length() + 1;
+							proposedText += "></" + getRequiredName(parent, elementDecl) + ">"; //$NON-NLS-2$//$NON-NLS-1$
+						}
 					}
-				
-					String proposedInfo = getAdditionalInfo(null, ed);
-					Image image = CMImageUtil.getImage(ed);
-					if (image == null) {
-						image = XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_TAG_GENERIC);
-					}
-					CustomCompletionProposal proposal = new CustomCompletionProposal(proposedText, contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), cursorAdjustment, image, getRequiredName(parent, ed), null, proposedInfo, XMLRelevanceConstants.R_TAG_NAME);
-					contentAssistRequest.addProposal(proposal);
 				}
+				String proposedInfo = getAdditionalInfo(null, ed);
+				Image image = CMImageUtil.getImage(ed);
+				if (image == null) {
+					image = XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_TAG_GENERIC);
+				}
+				CustomCompletionProposal proposal = new CustomCompletionProposal(proposedText, contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), cursorAdjustment, image, getRequiredName(parent, ed), null, proposedInfo, XMLRelevanceConstants.R_TAG_NAME);
+				contentAssistRequest.addProposal(proposal);
 			}
 		}
 	}
-	/**
-	 * this is the position the cursor should be in after the proposal is applied
-	 * @param proposedText
-	 * @return  the position the cursor should be in after the proposal is applied
-	 */
-	private int getCursorPositionForProposedText(String proposedText) {
-		int cursorAdjustment;
-		cursorAdjustment = proposedText.indexOf("\"\"") + 1; //$NON-NLS-1$
-		// otherwise, after the first tag
-		if(cursorAdjustment==0)
-			cursorAdjustment = proposedText.indexOf('>') + 1;
-		if(cursorAdjustment==0)
-			cursorAdjustment = proposedText.length() + 1;
-		
-		return cursorAdjustment;
-	}
 
 	protected void addXMLProposal(ContentAssistRequest contentAssistRequest) {
 		String proposedText = "<?xml version=\"1.0\" encoding=\"" + ContentTypeEncodingPreferences.getUserPreferredCharsetName(ContentTypeIdForXML.ContentTypeID_XML) + "\"?>"; //$NON-NLS-2$//$NON-NLS-1$
@@ -1117,7 +1089,7 @@
 	protected boolean beginsWith(String aString, String prefix) {
 		if (aString == null || prefix == null)
 			return true;
-		// (pa) matching independent of case to be consistant with Java
+		// (pa) 221190 matching independent of case to be consistant with Java
 		// editor CA
 		return aString.toLowerCase().startsWith(prefix.toLowerCase());
 	}
@@ -1548,8 +1520,7 @@
 			}
 			else {
 				if (sdRegion.getRegions().get(0).getType() != DOMRegionContext.XML_END_TAG_OPEN) {
-					int replaceLength = documentPosition - sdRegion.getStartOffset(completionRegion);
-					contentAssistRequest = newContentAssistRequest(node, node.getParentNode(), sdRegion, completionRegion, sdRegion.getStartOffset(completionRegion), replaceLength, matchString);
+					contentAssistRequest = newContentAssistRequest(node, node.getParentNode(), sdRegion, completionRegion, sdRegion.getStartOffset(completionRegion), completionRegion.getTextLength(), matchString);
 					addTagNameProposals(contentAssistRequest, getElementPositionForModelQuery(nodeAtOffset));
 				}
 				else {
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ReplaceNameTemplateContext.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ReplaceNameTemplateContext.java
new file mode 100644
index 0000000..9eb98c4
--- /dev/null
+++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ReplaceNameTemplateContext.java
@@ -0,0 +1,104 @@
+/*******************************************************************************
+ * Copyright (c) 2006 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.ui.internal.contentassist;
+
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.Position;
+import org.eclipse.jface.text.templates.DocumentTemplateContext;
+import org.eclipse.jface.text.templates.Template;
+import org.eclipse.jface.text.templates.TemplateBuffer;
+import org.eclipse.jface.text.templates.TemplateContextType;
+import org.eclipse.jface.text.templates.TemplateException;
+
+/**
+ * Just like DocumentTemplateContext except if an insert offset is passed in,
+ * during evaluation, the "prefix" before the template will be checked to see
+ * if it matches the template name. If so, overwrite the template name.
+ * Otherwise, just insert the template at the insert offset location (by not
+ * overwriting the prefix text)
+ */
+public class ReplaceNameTemplateContext extends DocumentTemplateContext {
+	private int fInsertOffset = -1;
+
+	/**
+	 * Creates a document template context.
+	 * 
+	 * @param type
+	 *            the context type
+	 * @param document
+	 *            the document this context applies to
+	 * @param offset
+	 *            the offset of the document region
+	 * @param length
+	 *            the length of the document region
+	 */
+	public ReplaceNameTemplateContext(TemplateContextType type, IDocument document, int offset, int length) {
+		this(type, document, new Position(offset, length));
+	}
+
+	/**
+	 * Creates a document template context. The supplied <code>Position</code>
+	 * will be queried to compute the <code>getStart</code> and
+	 * <code>getEnd</code> methods, which will therefore answer updated
+	 * position data if it is registered with the document.
+	 * 
+	 * @param type
+	 *            the context type
+	 * @param document
+	 *            the document this context applies to
+	 * @param position
+	 *            the position describing the area of the document which forms
+	 *            the template context
+	 * @since 3.1
+	 */
+	public ReplaceNameTemplateContext(TemplateContextType type, IDocument document, Position position) {
+		super(type, document, position);
+	}
+
+	/**
+	 * Creates a document template context.
+	 * 
+	 * @param type
+	 *            the context type
+	 * @param document
+	 *            the document this context applies to
+	 * @param offset
+	 *            the offset of the document region
+	 * @param length
+	 *            the length of the document region
+	 * @param insertOffset
+	 *            the offset of the document region where insert was
+	 *            originally requested
+	 */
+	public ReplaceNameTemplateContext(TemplateContextType type, IDocument document, int offset, int length, int insertOffset) {
+		this(type, document, new Position(offset, length));
+		fInsertOffset = insertOffset;
+	}
+
+	/*
+	 * @see org.eclipse.jface.text.templates.TemplateContext#evaluate(org.eclipse.jface.text.templates.Template)
+	 */
+	public TemplateBuffer evaluate(Template template) throws BadLocationException, TemplateException {
+		TemplateBuffer buffer = super.evaluate(template);
+		if (buffer != null) {
+			if (fInsertOffset > -1 && fInsertOffset > getStart()) {
+				String prefix = getDocument().get(getStart(), fInsertOffset - getStart());
+				if (!template.getName().startsWith(prefix)) {
+					// generate a new buffer that actually contains the
+					// text that was going to be overwritten
+					buffer = new TemplateBuffer(prefix + buffer.getString(), buffer.getVariables());
+				}
+			}
+		}
+		return buffer;
+	}
+}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLContentAssistProcessor.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLContentAssistProcessor.java
index 01068ba..32b40df 100644
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLContentAssistProcessor.java
+++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLContentAssistProcessor.java
@@ -65,9 +65,20 @@
 	 * @param context
 	 */
 	private void addTemplates(ContentAssistRequest contentAssistRequest, String context) {
+		addTemplates(contentAssistRequest, context, contentAssistRequest.getReplacementBeginPosition());
+	}
+	
+	/**
+	 * Adds templates to the list of proposals
+	 * 
+	 * @param contentAssistRequest
+	 * @param context
+	 * @param startOffset
+	 */
+	private void addTemplates(ContentAssistRequest contentAssistRequest, String context, int startOffset) {
 		if (contentAssistRequest == null)
 			return;
-
+		
 		// if already adding template proposals for a certain context type, do
 		// not add again
 		if (!fTemplateContexts.contains(context)) {
@@ -76,7 +87,7 @@
 
 			if (getTemplateCompletionProcessor() != null) {
 				getTemplateCompletionProcessor().setContextType(context);
-				ICompletionProposal[] proposals = getTemplateCompletionProcessor().computeCompletionProposals(fTextViewer, contentAssistRequest.getReplacementBeginPosition());
+				ICompletionProposal[] proposals = getTemplateCompletionProcessor().computeCompletionProposals(fTextViewer, startOffset);
 				for (int i = 0; i < proposals.length; ++i) {
 					if (useProposalList)
 						contentAssistRequest.addProposal(proposals[i]);
@@ -89,7 +100,8 @@
 	
 	protected ContentAssistRequest computeCompletionProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode treeNode, IDOMNode xmlnode) {
 		ContentAssistRequest request = super.computeCompletionProposals(documentPosition, matchString, completionRegion, treeNode, xmlnode);
-		addTemplates(request, TemplateContextTypeIdsXML.ALL);
+		// bug115927 use original document position for all/any region templates
+		addTemplates(request, TemplateContextTypeIdsXML.ALL, documentPosition);
 		return request;
 	}
 	
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLTemplateCompletionProcessor.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLTemplateCompletionProcessor.java
index a789a47..619bcae 100644
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLTemplateCompletionProcessor.java
+++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLTemplateCompletionProcessor.java
@@ -12,14 +12,24 @@
  *******************************************************************************/
 package org.eclipse.wst.xml.ui.internal.contentassist;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.ITextSelection;
 import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.jface.text.Region;
 import org.eclipse.jface.text.contentassist.ICompletionProposal;
 import org.eclipse.jface.text.templates.ContextTypeRegistry;
 import org.eclipse.jface.text.templates.Template;
 import org.eclipse.jface.text.templates.TemplateCompletionProcessor;
 import org.eclipse.jface.text.templates.TemplateContext;
 import org.eclipse.jface.text.templates.TemplateContextType;
+import org.eclipse.jface.text.templates.TemplateException;
+import org.eclipse.jface.text.templates.TemplateProposal;
 import org.eclipse.jface.text.templates.persistence.TemplateStore;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
@@ -35,8 +45,88 @@
  * templates.
  */
 class XMLTemplateCompletionProcessor extends TemplateCompletionProcessor {
+	private static final class ProposalComparator implements Comparator {
+		public int compare(Object o1, Object o2) {
+			return ((TemplateProposal) o2).getRelevance() - ((TemplateProposal) o1).getRelevance();
+		}
+	}
+
+	private static final Comparator fgProposalComparator = new ProposalComparator();
 	private String fContextTypeId = null;
 
+	/*
+	 * Copied from super class except instead of calling createContext(viewer,
+	 * region) call createContext(viewer, region, offset) instead
+	 */
+	public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) {
+
+		ITextSelection selection = (ITextSelection) viewer.getSelectionProvider().getSelection();
+
+		// adjust offset to end of normalized selection
+		if (selection.getOffset() == offset)
+			offset = selection.getOffset() + selection.getLength();
+
+		String prefix = extractPrefix(viewer, offset);
+		Region region = new Region(offset - prefix.length(), prefix.length());
+		TemplateContext context = createContext(viewer, region, offset);
+		if (context == null)
+			return new ICompletionProposal[0];
+
+		context.setVariable("selection", selection.getText()); // name of the
+																// selection
+																// variables
+																// {line,
+																// word}_selection
+																// //$NON-NLS-1$
+
+		Template[] templates = getTemplates(context.getContextType().getId());
+
+		List matches = new ArrayList();
+		for (int i = 0; i < templates.length; i++) {
+			Template template = templates[i];
+			try {
+				context.getContextType().validate(template.getPattern());
+			}
+			catch (TemplateException e) {
+				continue;
+			}
+			if (template.matches(prefix, context.getContextType().getId()))
+				matches.add(createProposal(template, context, (IRegion) region, getRelevance(template, prefix)));
+		}
+
+		Collections.sort(matches, fgProposalComparator);
+
+		return (ICompletionProposal[]) matches.toArray(new ICompletionProposal[matches.size()]);
+	}
+
+	/**
+	 * Creates a concrete template context for the given region in the
+	 * document. This involves finding out which context type is valid at the
+	 * given location, and then creating a context of this type. The default
+	 * implementation returns a <code>SmartReplaceTemplateContext</code> for
+	 * the context type at the given location. This takes the offset at which
+	 * content assist was invoked into consideration.
+	 * 
+	 * @param viewer
+	 *            the viewer for which the context is created
+	 * @param region
+	 *            the region into <code>document</code> for which the
+	 *            context is created
+	 * @param offset
+	 *            the original offset where content assist was invoked
+	 * @return a template context that can handle template insertion at the
+	 *         given location, or <code>null</code>
+	 */
+	private TemplateContext createContext(ITextViewer viewer, IRegion region, int offset) {
+		// pretty much same code as super.createContext except create SmartReplaceTemplateContext
+		TemplateContextType contextType = getContextType(viewer, region);
+		if (contextType != null) {
+			IDocument document = viewer.getDocument();
+			return new ReplaceNameTemplateContext(contextType, document, region.getOffset(), region.getLength(), offset);
+		}
+		return null;
+	}
+	
 	protected ICompletionProposal createProposal(Template template, TemplateContext context, IRegion region, int relevance) {
 		return new CustomTemplateProposal(template, context, region, getImage(template), relevance);
 	}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLFilesPreferencePage.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLFilesPreferencePage.java
index 29e8080..3340219 100644
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLFilesPreferencePage.java
+++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLFilesPreferencePage.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 IBM Corporation 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
@@ -12,29 +12,19 @@
  *******************************************************************************/
 package org.eclipse.wst.xml.ui.internal.preferences;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
 import java.util.Vector;
 
-import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.osgi.util.NLS;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Group;
 import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
 import org.eclipse.wst.sse.ui.internal.preferences.ui.AbstractPreferencePage;
 import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
-import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
 import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
 import org.eclipse.wst.xml.ui.internal.editor.IHelpContextIds;
 
@@ -43,8 +33,6 @@
 
 	protected Combo fEndOfLineCode = null;
 	private Vector fEOLCodes = null;
-	private Text fDefaultSuffix = null;
-	private List fValidExtensions = null;
 
 	protected Control createContents(Composite parent) {
 		Composite composite = (Composite) super.createContents(parent);
@@ -59,18 +47,12 @@
 	}
 
 	protected void createContentsForCreatingGroup(Composite parent) {
-		Group creatingGroup = createGroup(parent, 2);
+		Group creatingGroup = createGroup(parent, 1);
 		creatingGroup.setText(XMLUIMessages.Creating_files);
 
-		// Default extension for New file Wizard
-		createLabel(creatingGroup, XMLUIMessages.XMLFilesPreferencePage_ExtensionLabel);
-		fDefaultSuffix = createTextField(creatingGroup);
-		fDefaultSuffix.addModifyListener(this);
+		createLabel(creatingGroup, XMLUIMessages.Encoding_desc);
 
-		Label label = createLabel(creatingGroup, XMLUIMessages.Encoding_desc);
-		((GridData) label.getLayoutData()).horizontalSpan = 2;
 		fEncodingSettings = new EncodingSettings(creatingGroup, XMLUIMessages.Encoding);
-		((GridData) fEncodingSettings.getLayoutData()).horizontalSpan = 2;
 	}
 
 	protected void createContentsForCreatingOrSavingGroup(Composite parent) {
@@ -86,38 +68,11 @@
 		populateLineDelimiters();
 	}
 
-	public void dispose() {
-		fDefaultSuffix.removeModifyListener(this);
-		super.dispose();
-	}
-
 	protected void doSavePreferenceStore() {
 		XMLCorePlugin.getDefault().savePluginPreferences(); // model
 	}
 
 	/**
-	 * Get content type associated with this new file wizard
-	 * 
-	 * @return IContentType
-	 */
-	protected IContentType getContentType() {
-		return Platform.getContentTypeManager().getContentType(ContentTypeIdForXML.ContentTypeID_XML);
-	}
-
-	/**
-	 * Get list of valid extensions
-	 * 
-	 * @return List
-	 */
-	private List getValidExtensions() {
-		if (fValidExtensions == null) {
-			IContentType type = getContentType();
-			fValidExtensions = new ArrayList(Arrays.asList(type.getFileSpecs(IContentType.FILE_EXTENSION_SPEC)));
-		}
-		return fValidExtensions;
-	}
-
-	/**
 	 * Return the currently selected line delimiter preference
 	 * 
 	 * @return a line delimiter constant from CommonEncodingPreferenceNames
@@ -145,9 +100,6 @@
 	}
 
 	protected void initializeValuesForCreatingGroup() {
-		String suffix = getModelPreferences().getString(XMLCorePreferenceNames.DEFAULT_EXTENSION);
-		fDefaultSuffix.setText(suffix);
-
 		String encoding = getModelPreferences().getString(CommonEncodingPreferenceNames.OUTPUT_CODESET);
 
 		fEncodingSettings.setIANATag(encoding);
@@ -170,13 +122,10 @@
 	}
 
 	protected void performDefaultsForCreatingGroup() {
-		String suffix = getModelPreferences().getDefaultString(XMLCorePreferenceNames.DEFAULT_EXTENSION);
-		fDefaultSuffix.setText(suffix);
-
 		String encoding = getModelPreferences().getDefaultString(CommonEncodingPreferenceNames.OUTPUT_CODESET);
 
 		fEncodingSettings.setIANATag(encoding);
-		// fEncodingSettings.resetToDefaultEncoding();
+		//		fEncodingSettings.resetToDefaultEncoding();
 	}
 
 	protected void performDefaultsForCreatingOrSavingGroup() {
@@ -236,9 +185,6 @@
 	}
 
 	protected void storeValuesForCreatingGroup() {
-		String suffix = fDefaultSuffix.getText();
-		getModelPreferences().setValue(XMLCorePreferenceNames.DEFAULT_EXTENSION, suffix);
-
 		getModelPreferences().setValue(CommonEncodingPreferenceNames.OUTPUT_CODESET, fEncodingSettings.getIANATag());
 	}
 
@@ -246,22 +192,4 @@
 		String eolCode = getCurrentEOLCode();
 		getModelPreferences().setValue(CommonEncodingPreferenceNames.END_OF_LINE_CODE, eolCode);
 	}
-
-	protected void validateValues() {
-		boolean isValid = false;
-		Iterator i = getValidExtensions().iterator();
-		while (i.hasNext() && !isValid) {
-			String extension = (String) i.next();
-			isValid = extension.equalsIgnoreCase(fDefaultSuffix.getText());
-		}
-
-		if (!isValid) {
-			setErrorMessage(NLS.bind(XMLUIMessages.XMLFilesPreferencePage_ExtensionError, getValidExtensions().toString()));
-			setValid(false);
-		}
-		else {
-			setErrorMessage(null);
-			setValid(true);
-		}
-	}
 }
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/taginfo/MarkupTagInfoProvider.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/taginfo/MarkupTagInfoProvider.java
index 5b553d8..860a4f9 100644
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/taginfo/MarkupTagInfoProvider.java
+++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/taginfo/MarkupTagInfoProvider.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 IBM Corporation 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
@@ -98,7 +98,6 @@
 				sb.append(PARAGRAPH_START + BOLD_START + XMLUIMessages.Element____1 + SPACE + BOLD_END);
 				sb.append(node.getNodeName());
 				sb.append(PARAGRAPH_END);
-				printDocumentation(sb, node);
 				if (ed.getContentType() == CMElementDeclaration.PCDATA) {
 					CMDataType dataType = ed.getDataType();
 					if (dataType != null) {
@@ -112,16 +111,17 @@
 						sb.append(description + PARAGRAPH_END);
 					}
 				}
+				printDocumentation(sb, node);
 			} else if (node.getNodeType() == CMNode.ATTRIBUTE_DECLARATION) {
 				CMAttributeDeclaration ad = (CMAttributeDeclaration) node;
 				sb.append(PARAGRAPH_START + BOLD_START + XMLUIMessages.Attribute____3 + SPACE + BOLD_END);
 				sb.append(node.getNodeName());
 				sb.append(PARAGRAPH_END);
-				printDocumentation(sb, node);
 				CMDataType dataType = ad.getAttrType();
 				if (dataType != null) {
 					printDataTypeInfo(sb, dataType);
 				}
+				printDocumentation(sb, node);
 			} else if (node.getNodeType() == CMNode.DATA_TYPE) {
 				sb.append(PARAGRAPH_START + BOLD_START + XMLUIMessages.Data_Type____4 + SPACE + BOLD_END);
 				sb.append(node.getNodeName());
@@ -150,6 +150,7 @@
 	protected void printDocumentation(StringBuffer sb, CMNode node) {
 		CMNodeList nodeList = (CMNodeList) node.getProperty("documentation"); //$NON-NLS-1$
 		if ((nodeList != null) && (nodeList.getLength() > 0)) {
+			sb.append(NEW_LINE);
 			for (int i = 0; i < nodeList.getLength(); i++) {
 				CMDocumentation documentation = (CMDocumentation) nodeList.item(i);
 				String doc = documentation.getValue();
@@ -157,7 +158,6 @@
 					sb.append(PARAGRAPH_START + doc.trim() + PARAGRAPH_END);
 				}
 			}
-			sb.append(NEW_LINE);
 		}
 	}
 
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/taginfo/XMLTagInfoHoverProcessor.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/taginfo/XMLTagInfoHoverProcessor.java
index 937bafa..bb2177d 100644
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/taginfo/XMLTagInfoHoverProcessor.java
+++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/taginfo/XMLTagInfoHoverProcessor.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 IBM Corporation 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
@@ -27,7 +27,6 @@
 import org.eclipse.wst.sse.core.internal.util.Debug;
 import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
 import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
-import org.eclipse.wst.sse.ui.internal.taginfo.AbstractHoverProcessor;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
@@ -45,16 +44,16 @@
 /**
  * Provides hover help documentation for xml tags
  * 
+ * @author amywu
  * @see org.eclipse.jface.text.ITextHover
  */
-public class XMLTagInfoHoverProcessor extends AbstractHoverProcessor {
+public class XMLTagInfoHoverProcessor implements ITextHover {
 	protected MarkupTagInfoProvider fInfoProvider = null;
 
 	/**
 	 * Constructor for XMLTextHoverProcessor.
 	 */
 	public XMLTagInfoHoverProcessor() {
-		// nothing
 	}
 
 	/**
@@ -62,7 +61,7 @@
 	 * 
 	 * @return String any documentation information to display
 	 *         <code>null</code> if there is nothing to display.
-	 * 
+	 *  
 	 */
 	protected String computeHoverHelp(ITextViewer textViewer, int documentPosition) {
 		String result = null;
@@ -274,8 +273,7 @@
 							return new Region(flatNode.getStartOffset(region), region.getTextLength());
 						}
 					}
-				}
-				catch (BadLocationException e) {
+				} catch (BadLocationException e) {
 					Logger.logException(e);
 				}
 			}
@@ -313,8 +311,7 @@
 							return new Region(flatNode.getStartOffset(region), region.getTextLength());
 						}
 					}
-				}
-				catch (BadLocationException e) {
+				} catch (BadLocationException e) {
 					Logger.logException(e);
 				}
 			}
diff --git a/bundles/org.eclipse.wst.xsd.core/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.xsd.core/.settings/org.eclipse.jdt.core.prefs
index f9bd082..6cdb4d2 100644
--- a/bundles/org.eclipse.wst.xsd.core/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.wst.xsd.core/.settings/org.eclipse.jdt.core.prefs
@@ -1,6 +1,6 @@
-#Mon Jan 30 23:39:29 EST 2006
+#Mon Jan 30 18:54:33 EST 2006
 eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
 org.eclipse.jdt.core.compiler.compliance=1.4
@@ -34,7 +34,6 @@
 org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
 org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
 org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=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
@@ -49,7 +48,6 @@
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
 org.eclipse.jdt.core.compiler.problem.unusedImport=error
-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.unusedParameterWhenImplementingAbstract=disabled
diff --git a/bundles/org.eclipse.wst.xsd.core/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.wst.xsd.core/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 83ee912..0000000
--- a/bundles/org.eclipse.wst.xsd.core/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Jan 30 23:28:33 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/bundles/org.eclipse.wst.xsd.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.xsd.core/META-INF/MANIFEST.MF
index a7c6808..390939c 100644
--- a/bundles/org.eclipse.wst.xsd.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.xsd.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %_UI_PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.wst.xsd.core; singleton:=true
-Bundle-Version: 1.0.1.qualifer
+Bundle-Version: 1.0.1.qualifier
 Bundle-Activator: org.eclipse.wst.xsd.core.internal.XSDCorePlugin
 Bundle-Vendor: Eclipse.org
 Bundle-Localization: plugin
@@ -19,6 +19,6 @@
  org.eclipse.core.resources,
  org.eclipse.wst.validation,
  org.apache.xerces
-Eclipse-LasyStart: true
+Eclipse-AutoStart: true
 Plugin-Class: org.eclipse.wst.xsd.core.internal.XSDCorePlugin
 
diff --git a/bundles/org.eclipse.wst.xsd.core/plugin.properties b/bundles/org.eclipse.wst.xsd.core/plugin.properties
index fb668cb..35666bf 100644
--- a/bundles/org.eclipse.wst.xsd.core/plugin.properties
+++ b/bundles/org.eclipse.wst.xsd.core/plugin.properties
@@ -16,4 +16,21 @@
 _UI_PLUGIN_NAME                           = XSD Core Plugin
 XSD_Content_Type=XSD
 
+!
+! XSDEditor Menu bar contributor
+!
+
+_UI_MENU_VALIDATE_XML                     = &Validate XML Schema
+
+!
+! Validate Schema 
+!
+_UI_DIALOG_XML_SCHEMA_INVALID_TITLE       = Validation Failed
+_UI_DIALOG_XML_SCHEMA_VALID_TITLE         = Validation Succeeded
+_UI_DIALOG_XML_SCHEMA_VALID_TEXT          = The XML schema file is valid.
+_UI_DIALOG_XML_SCHEMA_VALID_WITH_WARNINGS = The XML schema file is valid however warnings have been issued. See the Problems view for the warning messages.
+_UI_DIALOG_XML_SCHEMA_INVALID_TEXT        = The XML schema file is not valid. See the Problems view for the error messages.
+_UI_DIALOG_XML_SCHEMA_LIMITE_EXCEEDED     = The XML schema file is not valid.  The message limit for the Problems view has been exceeded.  To see all the messages increase the limit and validate again.
+
+
 _UI_XML_SCHEMA_VALIDATOR                  = XML Schema Validator
diff --git a/bundles/org.eclipse.wst.xsd.ui/.classpath b/bundles/org.eclipse.wst.xsd.ui/.classpath
index 905c508..ed58bc2 100644
--- a/bundles/org.eclipse.wst.xsd.ui/.classpath
+++ b/bundles/org.eclipse.wst.xsd.ui/.classpath
@@ -2,7 +2,6 @@
 <classpath>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="src" path="src-validation"/>
-	<classpathentry kind="src" path="src-refactor"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="output" path="bin"/>
diff --git a/bundles/org.eclipse.wst.xsd.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.xsd.ui/META-INF/MANIFEST.MF
index 759a0f1..91c80fe 100644
--- a/bundles/org.eclipse.wst.xsd.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.xsd.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %_UI_PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.wst.xsd.ui; singleton:=true
-Bundle-Version: 1.0.0.qualifer
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.core.internal.compatibility.PluginActivator
 Bundle-Vendor: Eclipse.org
 Bundle-Localization: plugin
@@ -27,11 +27,9 @@
  org.eclipse.wst.xsd.ui.internal.provider,
  org.eclipse.wst.xsd.ui.internal.refactor,
  org.eclipse.wst.xsd.ui.internal.refactor.actions,
+ org.eclipse.wst.xsd.ui.internal.refactor.delete,
  org.eclipse.wst.xsd.ui.internal.refactor.rename,
  org.eclipse.wst.xsd.ui.internal.refactor.structure,
- org.eclipse.wst.xsd.ui.internal.refactor.util,
- org.eclipse.wst.xsd.ui.internal.refactor.wizard,
- org.eclipse.wst.xsd.ui.internal.search,
  org.eclipse.wst.xsd.ui.internal.text,
  org.eclipse.wst.xsd.ui.internal.util,
  org.eclipse.wst.xsd.ui.internal.validation,
@@ -41,7 +39,6 @@
  org.eclipse.wst.common.uriresolver,
  org.eclipse.wst.sse.ui,
  org.eclipse.wst.sse.core,
- org.eclipse.wst.common.core,
  org.eclipse.wst.xml.core,
  org.eclipse.wst.xml.ui,
  org.eclipse.wst.common.ui,
@@ -62,7 +59,6 @@
  org.eclipse.wst.validation,
  org.eclipse.ltk.core.refactoring,
  org.eclipse.ltk.ui.refactoring,
- org.eclipse.wst.xsd.core,
- org.eclipse.search
-Eclipse-LazyStart: true
+ org.eclipse.wst.xsd.core
+Eclipse-AutoStart: true
 Plugin-Class: org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin
diff --git a/bundles/org.eclipse.wst.xsd.ui/build.properties b/bundles/org.eclipse.wst.xsd.ui/build.properties
index 7204163..607430b 100644
--- a/bundles/org.eclipse.wst.xsd.ui/build.properties
+++ b/bundles/org.eclipse.wst.xsd.ui/build.properties
@@ -9,8 +9,7 @@
 #     IBM Corporation - initial API and implementation
 ###############################################################################
 source.. = src/,\
-           src-validation/,\
-           src-refactor/
+					   src-validation
 bin.includes = .,\
                plugin.xml,\
                icons/,\
@@ -23,4 +22,3 @@
                about.html
 src.includes = build.properties,\
                component.xml
-output.. = bin/
diff --git a/bundles/org.eclipse.wst.xsd.ui/plugin.properties b/bundles/org.eclipse.wst.xsd.ui/plugin.properties
index dc01a76..01944f1 100644
--- a/bundles/org.eclipse.wst.xsd.ui/plugin.properties
+++ b/bundles/org.eclipse.wst.xsd.ui/plugin.properties
@@ -514,11 +514,10 @@
 !
 ! Validate Schema 
 !
-_UI_DIALOG_XML_SCHEMA_INVALID_TITLE       = Validation Failed
-_UI_DIALOG_XML_SCHEMA_VALID_TITLE         = Validation Succeeded
-_UI_DIALOG_XML_SCHEMA_VALID_TEXT          = The XML schema file is valid.
-_UI_DIALOG_XML_SCHEMA_VALID_WITH_WARNINGS = The XML schema file is valid however warnings have been issued. See the Problems view for the warning messages.
-_UI_DIALOG_XML_SCHEMA_INVALID_TEXT        = The XML schema file is not valid. See the Problems view for the error messages.
+_UI_DIALOG_XML_SCHEMA_INVALID_TITLE  = Validation Failed
+_UI_DIALOG_XML_SCHEMA_VALID_TITLE    = Validation Succeeded
+_UI_DIALOG_XML_SCHEMA_VALID_TEXT     = The XML schema file is valid.
+_UI_DIALOG_XML_SCHEMA_LIMITE_EXCEEDED  = The XML schema file is not valid.  The message limit for the Tasks view has been exceeded.  Please increase the limit and try again.
 
 !
 ! Combo-box choices 
diff --git a/bundles/org.eclipse.wst.xsd.ui/plugin.xml b/bundles/org.eclipse.wst.xsd.ui/plugin.xml
index 98791f3..564798d 100644
--- a/bundles/org.eclipse.wst.xsd.ui/plugin.xml
+++ b/bundles/org.eclipse.wst.xsd.ui/plugin.xml
@@ -296,159 +296,4 @@
 		</validator>
 	</extension>
 
-	<!-- ============================================================================== -->
-	<!-- Register the XSDSearchParticpant against for XMLComponentSearchPatterns 		-->
-	<!-- ============================================================================== -->	
-	 <extension   
-		point="org.eclipse.wst.common.core.searchParticipants">
-		<searchParticipant
-			id="org.eclipse.wst.xsd.search.XSDSearchParticipant"
-			class="org.eclipse.wst.xsd.ui.internal.search.XSDSearchParticipant">
-			<enablement>
-			   <or>
-			      <with variable="pattern">
-					<instanceof value="org.eclipse.wst.xml.core.internal.search.XMLComponentSearchPattern"/>			   
-				  </with>
-				</or>
-			</enablement>
-			 <contentTypeBinding
-                contentTypeId="org.eclipse.wst.xsd.core.xsdsource" />
-		</searchParticipant>
-	 </extension>
-	
-	<!-- ============================================================================== -->	 
-    <!-- Register a 'rename' participant this enables us to provide refactoring for     --> 
-    <!-- renamed XML Schema components (e.g. elements, types etc.)                      --> 
-	<!-- ============================================================================== -->	 
-	<extension
-		point="org.eclipse.ltk.core.refactoring.renameParticipants">
-		<renameParticipant
-			name="%xsd.resource.rename.participant.name"
-			class="org.eclipse.wst.xsd.ui.internal.refactor.rename.XSDComponentRenameParticipant"
-			id="org.eclipse.wst.xsd.refactoring.XSDComponentRenameParticipant">
-			<enablement>
-				<with variable="element">
-					<instanceof
-						value="org.eclipse.xsd.XSDNamedComponent">
-					</instanceof>
-				</with>
-			</enablement>
-		</renameParticipant>
-		
-	</extension>
-	
-
-	<!-- ============================================================================== -->	 
-    <!-- Register a 'rename' participant this enables us to provide refactoring for     --> 
-    <!-- renamed resources.                                                             --> 
-	<!-- ============================================================================== -->	 
-    <extension
-		point="org.eclipse.ltk.core.refactoring.renameParticipants">
-		<renameParticipant
-			name="%xsd.resource.rename.participant.name"
-			class="org.eclipse.wst.xsd.ui.internal.refactor.rename.ResourceRenameParticipant"
-			id="org.eclipse.wst.xsd.refactoring.XSDResourceRenameParticipant">
-			<enablement>
-				<with variable="element">
-					<instanceof value="org.eclipse.core.resources.IResource"/>
-				</with>
-			</enablement>
-		</renameParticipant>
-	</extension>
-	
-	
-   <extension point="org.eclipse.ui.popupMenus"> 
-      <objectContribution 
-         id="org.eclipse.wst.xsd.ui.refactoring.menu.objectContrib" 
-         objectClass="org.eclipse.xsd.XSDComponent">  
-         <action
-            id="org.eclipse.wst.xsd.ui.search.declarations.action" 
-            enablesFor="1"
-            style="pulldown"
-            menubarPath="search-slot"
-            label="Declarations"
-            class="org.eclipse.wst.xsd.ui.internal.search.actions.XSDSearchDeclarationsGroupActionDelegate"> 
-         </action>          
-         <action
-            id="org.eclipse.wst.xsd.ui.search.references.action" 
-            enablesFor="1"
-            style="pulldown"
-            menubarPath="search-slot"
-            label="References"
-            class="org.eclipse.wst.xsd.ui.internal.search.actions.XSDSearchReferencesGroupActionDelegate"> 
-         </action>
-         <action
-            id="org.eclipse.wst.xsd.ui.refactoring.menu.refactorGroup.object" 
-            enablesFor="1"
-            style="pulldown"
-            menubarPath="refactoring-slot"
-            label="%refactoring.menu.label" 
-            class="org.eclipse.wst.xsd.ui.internal.refactor.actions.XSDRefactorGroupActionDelegate"> 
-         </action>          
-      </objectContribution>         
-    <viewerContribution
-        id="org.eclipse.wst.xsd.ui.refactoring.menu.source"
-        targetID="org.eclipse.wst.xsd.core.xsdsource.source.EditorContext">
-	    <action id="org.eclipse.wst.xsd.ui.refactoring.menu.refactorGroup.source"
-       		style="pulldown"
-            menubarPath="additions"
-            label="%refactoring.menu.label" 
-            class="org.eclipse.wst.xsd.ui.internal.refactor.actions.XSDRefactorGroupActionDelegate"> 
-  	    </action>
-       </viewerContribution>
-       
-     </extension>
-  
-
-	<extension point="org.eclipse.ui.commands">
-		<command
-			name="%command.xsd.refactor.rename.element.name"
-			description="%command.xsd.refactor.rename.element.description"
-			categoryId="org.eclipse.ui.category.edit"
-			id="org.eclipse.wst.xsd.ui.refactor.rename.element">
-		</command>
-		<command
-			name="%command.xsd.refactor.makeElementGlobal.element.name"
-			description="%command.xsd.refactor.makeElementGlobal.element.description"
-			categoryId="org.eclipse.ui.category.edit"
-			id="org.eclipse.wst.xsd.ui.refactor.makeElementGlobal">
-		</command>
-		<command
-			name="%command.xsd.refactor.makeTypeGlobal.element.name"
-			description="%command.xsd.refactor.makeTypeGlobal.element.description"
-			categoryId="org.eclipse.ui.category.edit"
-			id="org.eclipse.wst.xsd.ui.refactor.makeTypeGlobal">
-		</command>
-		<command
-			name="%command.xsd.refactor.renameTargetNamespace.name"
-			description="%command.xsd.refactor.renameTargetNamespace.description"
-			categoryId="org.eclipse.ui.category.edit"
-			id="org.eclipse.wst.xsd.ui.refactor.renameTargetNamespace">
-		</command>
-	</extension>
-	
-	
-	<!-- 
-		The following extension to the file context menu is temporary until resource 
-		navigator will provide allow to extend refactor menu        
-	-->
-	
-	<!--extension point="org.eclipse.ui.popupMenus">
-	 <objectContribution
-		objectClass="org.eclipse.core.resources.IFile"
-		nameFilter="*.xsd"
-		id="org.wst.xsd.ui.rename">
-		<menu id="refactorXSDResource" path="additions" label="%refactoring.menu.label">
-		  <separator name="refactor"/>
-		</menu>
-	<action
-		label="%refactoring.renameAction.label"
-		menubarPath="refactorXSDResource/refactor"
-		class="org.eclipse.wst.xsd.ui.internal.refactor.actions.RenameResourceActionDelegate"
-		enablesFor="1"
-		id="org.eclipse.wst.xsd.ui.refactoring.actions.RenameResource">
-	 </action>
-	 </objectContribution>
-	</extension-->	
-
 </plugin>
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/Checks.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/Checks.java
index db67a13..92a2027 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/Checks.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/Checks.java
@@ -1,14 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
 package org.eclipse.wst.xsd.ui.internal.refactor;
 
 import org.eclipse.ltk.core.refactoring.RefactoringStatus;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/INameUpdating.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/INameUpdating.java
index af89666..76adc4d 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/INameUpdating.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/INameUpdating.java
@@ -1,14 +1,9 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
+/*
+ * Created on Feb 16, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
 package org.eclipse.wst.xsd.ui.internal.refactor;
 
 import org.eclipse.ltk.core.refactoring.RefactoringStatus;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/IReferenceUpdating.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/IReferenceUpdating.java
index 1ff48fe..2b65694 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/IReferenceUpdating.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/IReferenceUpdating.java
@@ -1,14 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
 package org.eclipse.wst.xsd.ui.internal.refactor;
 
 public interface IReferenceUpdating {
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/RefactoringComponent.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/RefactoringComponent.java
index 554bc8a..8f4dc58 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/RefactoringComponent.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/RefactoringComponent.java
@@ -1,14 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
 package org.eclipse.wst.xsd.ui.internal.refactor;
 
 import org.eclipse.wst.common.core.search.pattern.QualifiedName;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/Startup.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/Startup.java
new file mode 100644
index 0000000..4a3fc53
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/Startup.java
@@ -0,0 +1,14 @@
+package org.eclipse.wst.xsd.ui.internal.refactor;
+
+
+import org.eclipse.ui.IStartup;
+import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+
+public class Startup implements IStartup {
+
+	public void earlyStartup() {
+		XSDEditorPlugin.getPlugin();
+
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/TextChangeManager.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/TextChangeManager.java
index 5252362..69ff744 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/TextChangeManager.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/TextChangeManager.java
@@ -1,14 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
 package org.eclipse.wst.xsd.ui.internal.refactor;
 
 import java.util.HashMap;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/XMLRefactoringComponent.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/XMLRefactoringComponent.java
index ad779b1..93eac43 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/XMLRefactoringComponent.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/XMLRefactoringComponent.java
@@ -1,14 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
 package org.eclipse.wst.xsd.ui.internal.refactor;
 
 import org.eclipse.wst.common.core.search.pattern.QualifiedName;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameAction.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameAction.java
index fe8c721..6b1d8b8 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameAction.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameAction.java
@@ -1,14 +1,4 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
+
 package org.eclipse.wst.xsd.ui.internal.refactor.actions;
 
 
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/XSDRefactorActionGroup.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/XSDRefactorActionGroup.java
index c8d8603..950fc6f 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/XSDRefactorActionGroup.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/XSDRefactorActionGroup.java
@@ -1,14 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
 package org.eclipse.wst.xsd.ui.internal.refactor.actions;
 
 import java.util.ArrayList;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/XSDRefactorGroupActionDelegate.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/XSDRefactorGroupActionDelegate.java
index 5a30033..965fc4e 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/XSDRefactorGroupActionDelegate.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/XSDRefactorGroupActionDelegate.java
@@ -1,14 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
 package org.eclipse.wst.xsd.ui.internal.refactor.actions;
 
 import java.io.IOException;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/XSDSelectionDispatchAction.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/XSDSelectionDispatchAction.java
index 078f4c1..05c72d4 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/XSDSelectionDispatchAction.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/XSDSelectionDispatchAction.java
@@ -1,14 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
 package org.eclipse.wst.xsd.ui.internal.refactor.actions;
 
 import org.eclipse.jface.viewers.ISelection;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/ComponentRenameArguments.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/ComponentRenameArguments.java
index ebdf3d0..f90685d 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/ComponentRenameArguments.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/ComponentRenameArguments.java
@@ -1,14 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
 package org.eclipse.wst.xsd.ui.internal.refactor.rename;
 
 import java.util.Map;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/SortingSearchRequestor.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/SortingSearchRequestor.java
index d140a8c..25179e7 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/SortingSearchRequestor.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/SortingSearchRequestor.java
@@ -1,14 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
 package org.eclipse.wst.xsd.ui.internal.refactor.rename;
 
 import java.util.ArrayList;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/XMLComponentRenameParticipant.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/XMLComponentRenameParticipant.java
index 2b2904c..cce160c 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/XMLComponentRenameParticipant.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/XMLComponentRenameParticipant.java
@@ -1,14 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
 package org.eclipse.wst.xsd.ui.internal.refactor.rename;
 
 import java.util.Iterator;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/XSDComponentRenameParticipant.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/XSDComponentRenameParticipant.java
index 3d169fd..c61fc01 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/XSDComponentRenameParticipant.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/XSDComponentRenameParticipant.java
@@ -1,14 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
 package org.eclipse.wst.xsd.ui.internal.refactor.rename;
 
 import java.util.List;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/util/LinkURLHelper.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/util/LinkURLHelper.java
new file mode 100644
index 0000000..30274d4
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/util/LinkURLHelper.java
@@ -0,0 +1,288 @@
+/*
+ * Created on Sep 21, 2004
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+package org.eclipse.wst.xsd.ui.internal.refactor.util;
+
+
+
+
+
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
+import org.eclipse.wst.common.uriresolver.internal.URI;
+import org.eclipse.wst.sse.core.internal.util.PathHelper;
+
+
+/**
+ * Hyperlink manager. Proved useful services like link conversion
+ * An utility class to help other parsre modules to convert links
+ */
+public class LinkURLHelper {
+
+	private static final String FILE_PROTOCOL_SEARCH_SIG = "file:/";//$NON-NLS-1$
+	private static final String FILE_PROTOCOL_SIG = "file:///";//$NON-NLS-1$
+	private static String RELATIVE_PATH_SIG = "..";//$NON-NLS-1$	
+	private static final String FORWARD_SLASH = "/";//$NON-NLS-1$	
+	private URL fBaseUrl = null; // base url. assumed to a absulute url
+	private String fBaseUrlString = null;
+	private URL fDocRoot = null;
+	private String fDocRootString = null;
+
+	public LinkURLHelper(String baseUrl) {
+		initialize(baseUrl, null);
+	}
+
+
+	public LinkURLHelper(String baseUrl, String docRoot) {
+		initialize(baseUrl, docRoot);
+	}
+
+	/**
+	 * Special adujust for file url
+	 */
+	public String adjustFileProtocolUrl(String url) {
+		if (url.startsWith(FILE_PROTOCOL_SEARCH_SIG)) {
+			url = FILE_PROTOCOL_SIG + url.substring(FILE_PROTOCOL_SEARCH_SIG.length());
+		}
+		return url;
+	}
+
+	private String convert(String url, URL baseUrl, String urlString) {
+		String absUrl = url;
+		if (baseUrl != null) {
+			try {
+				// do special thing file protocol
+				if (baseUrl.getProtocol().equalsIgnoreCase("file")) {//$NON-NLS-1$
+					// remove the fist
+					if (url.startsWith("/"))//$NON-NLS-1$
+						url = url.substring(1);
+					// empty string causes malformed exception	
+					String tempUrl = url;
+					if ("".equals(url))//$NON-NLS-1$
+						tempUrl = " ";//$NON-NLS-1$
+					URL newUrl = new URL(baseUrl, tempUrl);
+					// do extra math for file protocol to support ie based
+					absUrl = adjustFileProtocolUrl(newUrl.toString());
+				}
+				else {
+					URL newUrl = new URL(fBaseUrl, url);
+					absUrl = newUrl.toString();
+				}
+			}
+			catch (MalformedURLException me) {
+			}
+			// convert everything to forward slash
+			absUrl = PathHelper.switchToForwardSlashes(absUrl);
+		}
+		else {
+			// the given may be based on file
+			if (urlString != null) {
+				// swich the url to proper direction
+				url = PathHelper.removeLeadingSeparator(url);
+				File fle = new File(urlString, url);
+				absUrl = fle.getPath();
+
+			}
+			// convert everything to forward slash
+			absUrl = PathHelper.switchToForwardSlashes(absUrl);
+
+			// if the path ends with ".." we need to add a terminating slash or 
+			// else the link will not be resolved correctly.  (it will look like
+			// /url/path/to/somewhere/.. instead of /url/path/to/
+			if (absUrl.endsWith(FORWARD_SLASH + RELATIVE_PATH_SIG)) {
+				absUrl += FORWARD_SLASH;
+			}
+		}
+
+		// resolve relative path to absolute
+		absUrl = PathHelper.adjustPath(absUrl);
+		return absUrl;
+	}
+
+	private void initialize(String baseUrl, String docRoot) {
+		//
+		// Find out whether baes url is a url or file name
+		//
+		if ( URI.validScheme(baseUrl) ) {
+			try {
+				String temp = PathHelper.appendTrailingURLSlash(baseUrl);
+				fBaseUrl = new URL(temp);
+			}
+			catch (MalformedURLException mue) {
+				// it is a file based url
+				fBaseUrlString = baseUrl;
+			}
+		}
+		else {
+			// it is a file based url
+			fBaseUrlString = baseUrl;
+		}
+
+		// do the same for doc root
+		if (docRoot != null) {
+			if ( URI.validScheme(docRoot) ) {
+				try {
+					String temp = PathHelper.appendTrailingURLSlash(docRoot);
+					fDocRoot = new URL(temp);
+	
+				}
+				catch (MalformedURLException mue) {
+					// it is a file based url
+					fDocRootString = docRoot;
+				}
+			}
+			else {
+				// it is a file based url
+				fDocRootString = docRoot;
+			}
+		}
+	}
+
+	/**
+	 *  Convert the given url to a abolute url using the base url
+	 *  Input url can be of any othe following format
+	 * Absolute urls
+	 * --------------
+	 *  . http://www.foo.com/
+	 *  . http://www.foo.com
+	 *  . http://www.foo.com/folder
+	 *  . http://www.foo.com/folder/
+	 *  . http://www.foo.com/index.html
+	 *  . http://www.foo.com/folder/index.html
+	 *  . http://www.foo.com/folder/../index.html
+	 * Url relative  on document root
+	 * -------------------------
+	 *  . /
+	 *  . /folder
+	 *  . /index.html
+	 *  . /folder/index.html
+	 *  . /folder/../index.html
+	 * 
+	 * Self relative
+	 * -------------------------
+	 *  . index.html
+	 *  . ./index.html
+	 *  . ../index.html
+	 *  . folder/index.html
+	 *  . folder/../index.html
+	 *
+	 * file based url adds another dimension since it doesn't have a document root
+	 * So uses fDocRoot if provided
+	 */
+	public String toAbsolute(String url) {
+		String absUrl = url;
+
+		URL newUrl = null;
+		// try to see it is a absolute url
+		if ( URI.validScheme(url) ) {
+			try {
+				newUrl = new URL(url);
+			}
+			catch (MalformedURLException me) {
+			}
+		}
+		// if document root is provided
+		// do special case
+		if (newUrl == null) {
+			if (fDocRoot == null && fDocRootString == null) {
+				// try to check relative url
+				absUrl = convert(url, fBaseUrl, fBaseUrlString);
+			}
+			else {
+				// doc root is provided
+				// if the url is a doc root based use doc root
+
+				if (url.startsWith("/"))//$NON-NLS-1$
+					absUrl = convert(url, fDocRoot, fDocRootString);
+				else
+					absUrl = convert(url, fBaseUrl, fBaseUrlString);
+
+			}
+		}
+		return absUrl;
+	}
+
+	/**
+	 * Convert from an absolute url to relative url based on the given url
+	 * Both are assumed to be ablsute url
+	 */
+	public String toRelative(String url, String documentUrl) {
+		String output = url;
+		// assuming both urls are absolute
+		try {
+			URL inputUrl = new URL(url);
+			URL docUrl = new URL(documentUrl);
+			// filter out if the urls are not fro the same domain
+			if (!inputUrl.getProtocol().equals(docUrl.getProtocol()) || !inputUrl.getHost().equals(docUrl.getHost()) || inputUrl.getPort() != docUrl.getPort())
+				return output;
+			// both url are coming form the same place
+			// strip off the domain parts
+			String inputName = inputUrl.getFile();
+			String docName = docUrl.getFile();
+			output = PathHelper.convertToRelative(inputName, docName);
+		}
+		catch (MalformedURLException me) {
+			output = null;
+		}
+		return output;
+	}
+
+//	/*
+//	 */
+//	protected  String getScheme(String passedSpec) {
+//		if (passedSpec != null) {
+//	
+//			final String spec = passedSpec.trim();
+//			
+//			// protocol(scheme) java.net.URL can recognize is detemined
+//			// what URL.getURLStreamHandle(protocol) returns.
+//			// in Eclipse, only :
+//			//		valoader:
+//			//		file:
+//			//		jar:
+//			//		platform:
+//			//		doc:
+//			//		ftp:
+//			//		gopher:
+//			//		http:
+//			//		mailto:
+//			//		netdoc:
+//			//		systemresource:
+//			//		verbatim:
+//			// can recognize. Otherwise, it throws exception...
+//			// the following code comes from hpbcom/url.cpp, Url::parse_protocol()
+//			final int limit = spec.length();
+//			String newProtocol = null;
+//			for( int index = 0; index < limit; index++ ) {
+//				final char p = spec.charAt(index);
+//				if (p == '/') {
+//					break;
+//				}
+//				if (p == ':') {
+//					newProtocol = spec.substring(0, index);
+//					break;
+//				}
+//			}
+//			// copy end
+//		
+//			 			
+//			if (newProtocol != null && newProtocol.length() > 1 ) {
+//				for ( int i = 0; i < PROTOCOLS.length; i++ ){
+//					if (newProtocol.compareToIgnoreCase(PROTOCOLS[i]) == 0) {
+//						// matched;
+//						return newProtocol;
+//					}
+//				}
+//			}
+//		}
+//		//i don't know what is newProtocol. Ask URI class itself.
+//		//No, calling URI again is very slow. So, just give up
+//		//URI uri = new URI(spec);
+//		//return uri.getScheme();
+//		return null;//$NON-NLS-1$
+//	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/util/TextChangeCompatibility.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/util/TextChangeCompatibility.java
index 04a75e8..7f93a4f 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/util/TextChangeCompatibility.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/util/TextChangeCompatibility.java
@@ -1,14 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
 package org.eclipse.wst.xsd.ui.internal.refactor.util;
 
 import org.eclipse.core.runtime.Assert;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RefactorGroupActionDelegate.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RefactorGroupActionDelegate.java
index 29c5678..983a838 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RefactorGroupActionDelegate.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RefactorGroupActionDelegate.java
@@ -1,14 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
 package org.eclipse.wst.xsd.ui.internal.refactor.wizard;
 
 import org.eclipse.emf.ecore.resource.ResourceSet;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RefactorGroupSubMenu.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RefactorGroupSubMenu.java
index 77780e1..e402607 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RefactorGroupSubMenu.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RefactorGroupSubMenu.java
@@ -1,14 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
 package org.eclipse.wst.xsd.ui.internal.refactor.wizard;
 
 import java.util.ArrayList;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/IXSDSearchConstants.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/IXSDSearchConstants.java
index acb6488..b65703a 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/IXSDSearchConstants.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/IXSDSearchConstants.java
@@ -1,18 +1,8 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
 package org.eclipse.wst.xsd.ui.internal.search;
 
 import org.eclipse.wst.common.core.search.pattern.QualifiedName;
 
+// todo ... move
 public interface IXSDSearchConstants {
 	
 	public static final String XMLSCHEMA_NAMESPACE = "http://www.w3.org/2001/XMLSchema";
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/XSDSearchContributor.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/XSDSearchContributor.java
index 24e8040..3fdc553 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/XSDSearchContributor.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/XSDSearchContributor.java
@@ -1,14 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
 package org.eclipse.wst.xsd.ui.internal.search;
 
 import java.util.ArrayList;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/XSDSearchParticipant.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/XSDSearchParticipant.java
index c148c95..ae0b1a6 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/XSDSearchParticipant.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/XSDSearchParticipant.java
@@ -1,14 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
 package org.eclipse.wst.xsd.ui.internal.search;
 
 import org.eclipse.wst.common.core.search.pattern.SearchPattern;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/XSDSearchQuery.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/XSDSearchQuery.java
deleted file mode 100644
index 4dfefbd..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/XSDSearchQuery.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-import org.eclipse.wst.common.core.search.scope.SearchScope;
-import org.eclipse.wst.common.ui.internal.search.AbstractSearchQuery;
-import org.eclipse.wst.xml.core.internal.search.XMLComponentDeclarationPattern;
-import org.eclipse.wst.xml.core.internal.search.XMLComponentReferencePattern;
-
-public class XSDSearchQuery extends AbstractSearchQuery
-{   
-  public final static int LIMIT_TO_DECLARATIONS = 1;
-  public final static int LIMIT_TO_REFERENCES   = 2;  
-  
-  int fLimitTo = 0;
-  IFile fContextFile;
-  QualifiedName fElementQName;
-  QualifiedName fTypeName;
-  
-  public XSDSearchQuery(String pattern, IFile file, QualifiedName elementQName, QualifiedName typeName, int limitTo, SearchScope scope, String scopeDescription)
-  {
-    super(pattern, scope, scopeDescription);
-    fLimitTo = limitTo;
-    fContextFile = file;
-    fElementQName = elementQName;
-    fTypeName = typeName;
-  }
-
-  protected SearchPattern createSearchPattern(QualifiedName typeName)
-  {
-    if (fLimitTo == LIMIT_TO_DECLARATIONS)
-    {  
-      return new XMLComponentDeclarationPattern(fContextFile, fElementQName, fTypeName);
-    }  
-    else if (fLimitTo == LIMIT_TO_REFERENCES)
-    {
-      return new XMLComponentReferencePattern(fContextFile, fElementQName, fTypeName);
-    }  
-    return null;
-  }
-}
-
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/BaseGroupActionDelegate.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/BaseGroupActionDelegate.java
deleted file mode 100644
index 41a7e02..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/BaseGroupActionDelegate.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuCreator;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.events.MenuAdapter;
-import org.eclipse.swt.events.MenuEvent;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IEditorActionDelegate;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-
-public abstract class BaseGroupActionDelegate implements IObjectActionDelegate, IEditorActionDelegate, IMenuCreator
-{
-    protected ISelection fSelection;
-    private IAction fDelegateAction;
-    // whether to re-fill the menu (reset on selection change)
-    private boolean fFillMenu = true;
-    protected IWorkbenchPart workbenchPart; 
-    
-
-    public BaseGroupActionDelegate() 
-    {
-      System.out.println("Create ActionDelegate " + this.getClass().getName());
-    }
-    
-    /*
-     * @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction, org.eclipse.ui.IWorkbenchPart)
-     */
-    public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-        workbenchPart = targetPart;
-    }
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IMenuCreator#dispose()
-     */
-    public void dispose() {
-        // nothing to do
-    }
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets.Control)
-     */
-    public Menu getMenu(Control parent) {
-        // never called
-        return null;
-    }
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets.Menu)
-     */
-    public Menu getMenu(Menu parent) {
-        //Create the new menu. The menu will get filled when it is about to be shown. see fillMenu(Menu).
-        Menu menu = new Menu(parent);
-        /**
-         * Add listener to repopulate the menu each time
-         * it is shown because MenuManager.update(boolean, boolean) 
-         * doesn't dispose pulldown ActionContribution items for each popup menu.
-         */
-        menu.addMenuListener(new MenuAdapter() {
-            public void menuShown(MenuEvent e) {
-                if (fFillMenu) {
-                    Menu m = (Menu)e.widget;
-                    MenuItem[] items = m.getItems();
-                    for (int i=0; i < items.length; i++) {
-                        items[i].dispose();
-                    }
-                    fillMenu(m);
-                    fFillMenu = false;
-                }
-            }
-        });
-        return menu;
-    }
-
-    /*
-     * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
-     */
-    public void run(IAction action) {
-        // Never called because we become a menu.
-    }
-    
-    /*
-     * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
-     */
-    public void selectionChanged(IAction action, ISelection selection) {
-        fDelegateAction = action;
-        updateWith(selection);
-        
-    }
-
-  public void setActiveEditor(IAction action, IEditorPart targetEditor) {
-        workbenchPart = targetEditor;
-        fDelegateAction = action;
-        if (targetEditor != null && targetEditor.getEditorSite() != null && targetEditor.getEditorSite().getSelectionProvider() != null) {
-            updateWith(targetEditor.getEditorSite().getSelectionProvider().getSelection());
-        }
-        
-    }
-  
-    public void updateWith(ISelection selection) {
-        fSelection = selection;
-        if (fDelegateAction != null) {
-            boolean enable = false;
-            if (selection != null) {
-                if (selection instanceof ITextSelection) {
-                    //if (((ITextSelection) selection).getLength() > 0) {
-                        enable = true;
-                    //}
-                }
-                else if(selection instanceof IStructuredSelection ){
-                    enable = !selection.isEmpty();
-                }
-            }
-            // enable action
-            fDelegateAction.setEnabled(enable);
-            
-            // fill submenu
-            fFillMenu = true;
-            fDelegateAction.setMenuCreator(this);
-            
-            
-        }
-        
-    }
-    
-    
-  protected abstract void fillMenu(Menu menu);
-    
-   
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/CompositeActionGroup.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/CompositeActionGroup.java
deleted file mode 100644
index 0bc530a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/CompositeActionGroup.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-// TODO... open a bugzilla to get the JDT class moved to non internal platform
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.util.Assert;
-
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.actions.ActionContext;
-import org.eclipse.ui.actions.ActionGroup;
-
-public class CompositeActionGroup extends ActionGroup {
-
-    private ActionGroup[] fGroups;
-    
-    public CompositeActionGroup() {
-    }
-    
-    public CompositeActionGroup(ActionGroup[] groups) {
-        setGroups(groups);
-    }
-
-    protected void setGroups(ActionGroup[] groups) {
-        Assert.isTrue(fGroups == null);
-        Assert.isNotNull(groups);
-        fGroups= groups;        
-    }
-        
-    public ActionGroup get(int index) {
-        if (fGroups == null)
-            return null;
-        return fGroups[index];
-    }
-    
-    public void addGroup(ActionGroup group) {
-        if (fGroups == null) {
-            fGroups= new ActionGroup[] { group };
-        } else {
-            ActionGroup[] newGroups= new ActionGroup[fGroups.length + 1];
-            System.arraycopy(fGroups, 0, newGroups, 0, fGroups.length);
-            newGroups[fGroups.length]= group;
-            fGroups= newGroups;
-        }
-    }
-    
-    public void dispose() {
-        super.dispose();
-        if (fGroups == null)
-            return;
-        for (int i= 0; i < fGroups.length; i++) {
-            fGroups[i].dispose();
-        }
-    }
-
-    public void fillActionBars(IActionBars actionBars) {
-        super.fillActionBars(actionBars);
-        if (fGroups == null)
-            return;
-        for (int i= 0; i < fGroups.length; i++) {
-            fGroups[i].fillActionBars(actionBars);
-        }
-    }
-
-    public void fillContextMenu(IMenuManager menu) {
-        super.fillContextMenu(menu);
-        if (fGroups == null)
-            return;
-        for (int i= 0; i < fGroups.length; i++) {
-            fGroups[i].fillContextMenu(menu);
-        }
-    }
-
-    public void setContext(ActionContext context) {
-        super.setContext(context);
-        if (fGroups == null)
-            return;
-        for (int i= 0; i < fGroups.length; i++) {
-            fGroups[i].setContext(context);
-        }
-    }
-
-    public void updateActionBars() {
-        super.updateActionBars();
-        if (fGroups == null)
-            return;
-        for (int i= 0; i < fGroups.length; i++) {
-            fGroups[i].updateActionBars();
-        }
-    }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/DeclarationsSearchGroup.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/DeclarationsSearchGroup.java
deleted file mode 100644
index 05308e2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/DeclarationsSearchGroup.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-// TODO.. fill in the content
-public class DeclarationsSearchGroup
-{
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/FindAction.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/FindAction.java
deleted file mode 100644
index 187d894..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/FindAction.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.ui.IEditorPart;
-
-public class FindAction extends Action implements ISelectionChangedListener
-{
-  IEditorPart editor;
-  
-  protected FindAction(IEditorPart editor)
-  {
-    this.editor = editor;
-  }
-  
-  public void selectionChanged(SelectionChangedEvent event)
-  {
-    // TODO Auto-generated method stub
-    
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/FindReferencesAction.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/FindReferencesAction.java
deleted file mode 100644
index 32d642a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/FindReferencesAction.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.search.ui.NewSearchUI;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-import org.eclipse.wst.common.core.search.scope.SearchScope;
-import org.eclipse.wst.common.core.search.scope.WorkspaceSearchScope;
-import org.eclipse.wst.xsd.ui.internal.search.IXSDSearchConstants;
-import org.eclipse.wst.xsd.ui.internal.search.XSDSearchQuery;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-
-public class FindReferencesAction extends FindAction
-{
-  public FindReferencesAction(IEditorPart editor)
-  {   
-    super(editor);
-  }
-  
-  public void setActionDefinitionId(String string)
-  {
-    
-  }
-
-  public void run()
-  {
-    String pattern = "";
-    if (editor != null)
-    {  
-      IEditorInput input = editor.getEditorInput();
-      if (input instanceof IFileEditorInput)
-      {
-        IFileEditorInput fileEditorInput = (IFileEditorInput)input;               
-        IFile file = fileEditorInput.getFile();        
-        ISelectionProvider provider = (ISelectionProvider)editor.getAdapter(ISelectionProvider.class);
-        if (provider != null)
-        {  
-          ISelection selection = provider.getSelection();
-          if (selection != null && selection instanceof IStructuredSelection)
-          {
-            IStructuredSelection s = (IStructuredSelection)selection;
-            Object o = s.getFirstElement();
-            if (o != null && o instanceof XSDNamedComponent)
-            {  
-              XSDNamedComponent c = (XSDNamedComponent)o;
-              QualifiedName metaName = null;
-              if (c instanceof XSDComplexTypeDefinition)
-              {             
-                metaName = IXSDSearchConstants.COMPLEX_TYPE_META_NAME;
-              }
-              else if (c instanceof XSDSimpleTypeDefinition)
-              {
-                metaName = IXSDSearchConstants.SIMPLE_TYPE_META_NAME;
-              }  
-              else if (c instanceof XSDElementDeclaration)
-              {
-               metaName = IXSDSearchConstants.ELEMENT_META_NAME; 
-              }  
-              QualifiedName elementQName = new QualifiedName(c.getTargetNamespace(), c.getName());
-              System.out.println("name" + c.getTargetNamespace() + ":" + c.getName());
-              SearchScope scope = new WorkspaceSearchScope();
-              String scopeDescription = "Workspace";    
-              XSDSearchQuery searchQuery= new XSDSearchQuery(pattern, file, elementQName, metaName, XSDSearchQuery.LIMIT_TO_REFERENCES, scope, scopeDescription);    
-              NewSearchUI.activateSearchResultView();
-              NewSearchUI.runQueryInBackground(searchQuery);
-            }
-          }
-        }
-      }
-    }
-  }     
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/ImplementorsSearchGroup.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/ImplementorsSearchGroup.java
deleted file mode 100644
index 0efc8ff..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/ImplementorsSearchGroup.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-// TODO... fill in the content
-public class ImplementorsSearchGroup
-{
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/OccurrencesSearchGroup.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/OccurrencesSearchGroup.java
deleted file mode 100644
index 463e241..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/OccurrencesSearchGroup.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-// TODO... fill in the content
-public class OccurrencesSearchGroup
-{
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/ReferencesSearchGroup.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/ReferencesSearchGroup.java
deleted file mode 100644
index 8acc38f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/ReferencesSearchGroup.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-import java.util.List;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchSite;
-import org.eclipse.ui.texteditor.ITextEditorActionConstants;
-
-/**
- * Action group that adds the search for references actions to a
- * context menu and the global menu bar.
- * 
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * 
- * @since 2.0
- */
-public class ReferencesSearchGroup extends SearchGroup  {
-
-    private static final String MENU_TEXT= "References...";//SearchMessages.group_references; 
-
-    private IWorkbenchSite fSite;
-    private IEditorPart fEditor;
-    private IActionBars fActionBars;
-    
-    private String fGroupId;
-    
-    private FindReferencesAction fFindReferencesAction;
-    private FindReferencesAction fFindReferencesInProjectAction;
-    private FindReferencesAction fFindReferencesInHierarchyAction;
-    private FindReferencesAction fFindReferencesInWorkingSetAction;
-
-
-    /**
-     * Note: This constructor is for internal use only. Clients should not call this constructor.
-     * @param editor
-     */
-    public ReferencesSearchGroup(IEditorPart editor) {
-        Assert.isNotNull(editor);
-        fEditor= editor;
-        fSite= fEditor.getSite();
-        fGroupId= ITextEditorActionConstants.GROUP_FIND;
-
-        fFindReferencesAction= new FindReferencesAction(editor);
-        fFindReferencesAction.setText("Workspace");
-        fFindReferencesAction.setActionDefinitionId("SEARCH_REFERENCES_IN_WORKSPACE");
-        //fEditor.setAction("SearchReferencesInWorkspace", fFindReferencesAction); //$NON-NLS-1$
-
-        fFindReferencesInProjectAction= new FindReferencesAction(fEditor);
-        fFindReferencesInProjectAction.setText("Project");        
-        fFindReferencesInProjectAction.setActionDefinitionId("SEARCH_REFERENCES_IN_PROJECT");
-        //fEditor.setAction("SearchReferencesInProject", fFindReferencesInProjectAction); //$NON-NLS-1$
-
-        fFindReferencesInHierarchyAction= new FindReferencesAction(fEditor);
-        fFindReferencesInHierarchyAction.setText("Hierarchy");          
-        fFindReferencesInHierarchyAction.setActionDefinitionId("SEARCH_REFERENCES_IN_HIERARCHY");
-        //fEditor.setAction("SearchReferencesInHierarchy", fFindReferencesInHierarchyAction); //$NON-NLS-1$
-        
-        fFindReferencesInWorkingSetAction= new FindReferencesAction(fEditor);
-        fFindReferencesInWorkingSetAction.setText("Working Set...");         
-        fFindReferencesInWorkingSetAction.setActionDefinitionId(".SEARCH_REFERENCES_IN_WORKING_SET");
-        //fEditor.setAction("SearchReferencesInWorkingSet", fFindReferencesInWorkingSetAction); //$NON-NLS-1$
-    }
-
-    /*
-    private void registerAction(SelectionDispatchAction action, ISelectionProvider provider, ISelection selection) {
-        action.update(selection);
-        provider.addSelectionChangedListener(action);
-    }*/
-
-    /**
-     * Note: this method is for internal use only. Clients should not call this method.
-     * 
-     * @return the menu label
-     */
-    protected String getName() {
-        return MENU_TEXT;
-    }
-    
-    public void fillActions(List list)
-    {
-      list.add(fFindReferencesAction);
-      list.add(fFindReferencesInHierarchyAction);
-      list.add(fFindReferencesInProjectAction);
-      list.add(new Separator());
-      list.add(fFindReferencesInWorkingSetAction);
-    }
-    
-    /* (non-Javadoc)
-     * Method declared in ActionGroup
-     */
-    public void fillActionBars(IActionBars actionBars) {
-        Assert.isNotNull(actionBars);
-        super.fillActionBars(actionBars);
-        fActionBars= actionBars;
-        updateGlobalActionHandlers();
-    }
-
-    
-    private void addAction(IAction action, IMenuManager manager) {
-        if (action.isEnabled()) {
-            manager.add(action);
-        }
-    }
-
-    /*
-    private void addWorkingSetAction(IWorkingSet[] workingSets, IMenuManager manager) {
-        FindAction action;
-        if (fEditor != null)
-            action= new WorkingSetFindAction(fEditor, new FindReferencesInWorkingSetAction(fEditor, workingSets), SearchUtil.toString(workingSets));
-        else
-            action= new WorkingSetFindAction(fSite, new FindReferencesInWorkingSetAction(fSite, workingSets), SearchUtil.toString(workingSets));
-        action.update(getContext().getSelection());
-        addAction(action, manager);
-    }
-    */
-    
-    /* (non-Javadoc)
-     * Method declared on ActionGroup.
-     */
-    public void fillContextMenu(IMenuManager manager) {
-      /*
-        MenuManager javaSearchMM= new MenuManager(getName(), IContextMenuConstants.GROUP_SEARCH);
-        addAction(fFindReferencesAction, javaSearchMM);
-        addAction(fFindReferencesInProjectAction, javaSearchMM);
-        addAction(fFindReferencesInHierarchyAction, javaSearchMM);
-        
-        javaSearchMM.add(new Separator());
-        
-        Iterator iter= SearchUtil.getLRUWorkingSets().sortedIterator();
-        while (iter.hasNext()) {
-            addWorkingSetAction((IWorkingSet[]) iter.next(), javaSearchMM);
-        }
-        addAction(fFindReferencesInWorkingSetAction, javaSearchMM);
-
-        if (!javaSearchMM.isEmpty())
-            manager.appendToGroup(fGroupId, javaSearchMM);
-        */    
-    }
-    
-    /* 
-     * Overrides method declared in ActionGroup
-     */
-    public void dispose() {
-        ISelectionProvider provider= fSite.getSelectionProvider();
-        if (provider != null) {
-            disposeAction(fFindReferencesAction, provider);
-            disposeAction(fFindReferencesInProjectAction, provider);
-            disposeAction(fFindReferencesInHierarchyAction, provider);
-            disposeAction(fFindReferencesInWorkingSetAction, provider);
-        }
-        fFindReferencesAction= null;
-        fFindReferencesInProjectAction= null;
-        fFindReferencesInHierarchyAction= null;
-        fFindReferencesInWorkingSetAction= null;
-        updateGlobalActionHandlers();
-        super.dispose();
-    }
-
-    private void updateGlobalActionHandlers() {
-      /*
-        if (fActionBars != null) {
-            fActionBars.setGlobalActionHandler(JdtActionConstants.FIND_REFERENCES_IN_WORKSPACE, fFindReferencesAction);
-            fActionBars.setGlobalActionHandler(JdtActionConstants.FIND_REFERENCES_IN_PROJECT, fFindReferencesInProjectAction);
-            fActionBars.setGlobalActionHandler(JdtActionConstants.FIND_REFERENCES_IN_HIERARCHY, fFindReferencesInHierarchyAction);
-            fActionBars.setGlobalActionHandler(JdtActionConstants.FIND_REFERENCES_IN_WORKING_SET, fFindReferencesInWorkingSetAction);
-        }
-        */
-    }
-
-    private void disposeAction(ISelectionChangedListener action, ISelectionProvider provider) {
-        if (action != null)
-            provider.removeSelectionChangedListener(action);
-    }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/SearchGroup.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/SearchGroup.java
deleted file mode 100644
index 18071ba..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/SearchGroup.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-import java.util.List;
-import org.eclipse.ui.actions.ActionGroup;
-
-public abstract class SearchGroup extends ActionGroup
-{
-  public abstract void fillActions(List list);
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchActionGroup.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchActionGroup.java
deleted file mode 100644
index e601f8c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchActionGroup.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-import org.eclipse.jface.util.Assert;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.actions.ActionGroup;
-
-public class XSDSearchActionGroup extends ActionGroup
-{
-  private ReferencesSearchGroup fReferencesGroup;
-  private DeclarationsSearchGroup fDeclarationsGroup;
-  private ImplementorsSearchGroup fImplementorsGroup;
-  private OccurrencesSearchGroup fOccurrencesGroup;
-  private IEditorPart fEditor;
-
-  public XSDSearchActionGroup(IEditorPart editor)
-  {
-    Assert.isNotNull(editor);
-    fEditor = editor;
-    fReferencesGroup = new ReferencesSearchGroup(editor);
-    fDeclarationsGroup = new DeclarationsSearchGroup();
-    fImplementorsGroup = new ImplementorsSearchGroup();
-    fOccurrencesGroup = new OccurrencesSearchGroup();
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchDeclarationsGroupActionDelegate.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchDeclarationsGroupActionDelegate.java
deleted file mode 100644
index e57b1e5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchDeclarationsGroupActionDelegate.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-import org.eclipse.swt.widgets.Menu;
-
-//org.eclipse.wst.xsd.ui.internal.search.actions.XSDSearchGroupActionDelegate
-public class XSDSearchDeclarationsGroupActionDelegate extends BaseGroupActionDelegate
-{
-    protected void fillMenu(Menu menu) {
-      // TODO... fill in the content
-      /*
-        if (fSelection == null) {
-            return;
-        }          
-        XSDSearchActionGroup refactorMenuGroup = new XSDSearchActionGroup(null);
-        XSDSearchGroupSubMenu subMenu = new XSDSearchGroupSubMenu(refactorMenuGroup);
-        subMenu.fill(menu, -1);
-      */          
-    }  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchGroupSubMenu.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchGroupSubMenu.java
deleted file mode 100644
index 65d6ff4..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchGroupSubMenu.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.ui.actions.CompoundContributionItem;
-
-public class XSDSearchGroupSubMenu extends CompoundContributionItem
-{
-  SearchGroup searchActionGroup;
-
-  public XSDSearchGroupSubMenu(SearchGroup refactorMenuGroup)
-  {
-    super();
-    searchActionGroup = refactorMenuGroup;
-  }
-
-  public XSDSearchGroupSubMenu(String id)
-  {
-    super(id);
-  }
-
-  protected IContributionItem[] getContributionItems()
-  {
-    ArrayList actionsList = new ArrayList();
-    ArrayList contribList = new ArrayList();
-    searchActionGroup.fillActions(actionsList);
-    if (actionsList != null && !actionsList.isEmpty())
-    {
-      for (Iterator iter = actionsList.iterator(); iter.hasNext();)
-      {
-        Object o = iter.next();
-        if (o instanceof IAction)
-        {  
-          IAction action = (IAction)o;
-          contribList.add(new ActionContributionItem(action));
-        }
-        else if (o instanceof Separator)
-        {
-          Separator separator = (Separator)o;
-          contribList.add(separator);
-        }  
-      }
-    }
-    else
-    {
-      Action dummyAction = new Action("XSDSeachActionGroup_no_refactoring_available")
-      {
-        // dummy inner class; no methods
-      };
-      dummyAction.setEnabled(false);
-      contribList.add(new ActionContributionItem(dummyAction));
-    }
-    return (IContributionItem[]) contribList.toArray(new IContributionItem[contribList.size()]);        
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchReferencesGroupActionDelegate.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchReferencesGroupActionDelegate.java
deleted file mode 100644
index 6466896..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchReferencesGroupActionDelegate.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IEditorPart;
-
-//org.eclipse.wst.xsd.ui.internal.search.actions.XSDSearchGroupActionDelegate
-public class XSDSearchReferencesGroupActionDelegate extends BaseGroupActionDelegate
-{
-    protected void fillMenu(Menu menu) {
-      try
-      {
-        if (fSelection == null) {
-            return;
-        }  
-        if (workbenchPart instanceof IEditorPart)
-        {            
-          ReferencesSearchGroup referencesGroup = new ReferencesSearchGroup((IEditorPart)workbenchPart);
-          XSDSearchGroupSubMenu subMenu = new XSDSearchGroupSubMenu(referencesGroup);
-          subMenu.fill(menu, -1);
-        }  
-      }
-      catch (Exception e)
-      {
-        e.printStackTrace();
-      }
-    }  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/ValidateAction.java b/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/ValidateAction.java
index a489005..f6f85a1 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/ValidateAction.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/ValidateAction.java
@@ -22,7 +22,6 @@
 import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 import org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage;
 import org.eclipse.wst.xml.core.internal.validation.core.ValidationReport;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
 
 
 
@@ -114,8 +113,8 @@
       {
         if (!valoutcome.isValid)
         {
-          String message = XSDEditorPlugin.getXSDString(_UI_DIALOG_XML_SCHEMA_INVALID_TEXT);
-          String title = XSDEditorPlugin.getXSDString(_UI_DIALOG_XML_SCHEMA_INVALID_TITLE);
+          String message = XSDValidatorManager.getString(_UI_DIALOG_XML_SCHEMA_INVALID_TEXT);
+          String title = XSDValidatorManager.getString(_UI_DIALOG_XML_SCHEMA_INVALID_TITLE);
           if (internalErrorMessage != null)
           {
             message = message + "\n" + internalErrorMessage;
@@ -124,14 +123,14 @@
         } 
         else if (valoutcome.isValid && valoutcome.hasMessages)
         {
-          String message = XSDEditorPlugin.getXSDString(_UI_DIALOG_XML_SCHEMA_VALID_WITH_WARNINGS);
-          String title = XSDEditorPlugin.getXSDString(_UI_DIALOG_XML_SCHEMA_VALID_TITLE);
+          String message = XSDValidatorManager.getString(_UI_DIALOG_XML_SCHEMA_VALID_WITH_WARNINGS);
+          String title = XSDValidatorManager.getString(_UI_DIALOG_XML_SCHEMA_VALID_TITLE);
           openWarningDialog(title, message);
         } 
         else
         {
-          String message = XSDEditorPlugin.getXSDString(_UI_DIALOG_XML_SCHEMA_VALID_TEXT);
-          String title = XSDEditorPlugin.getXSDString(_UI_DIALOG_XML_SCHEMA_VALID_TITLE);
+          String message = XSDValidatorManager.getString(_UI_DIALOG_XML_SCHEMA_VALID_TEXT);
+          String title = XSDValidatorManager.getString(_UI_DIALOG_XML_SCHEMA_VALID_TITLE);
           //String message = validator.isGrammarEncountered() ?
           //                 XSDValidatorManager.getString("_UI_THE_XML_FILE_IS_VALID") :
           //                XSDValidatorManager.getString("_UI_THE_XML_FILE_IS_WELL_FORMED") +
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/XSDValidatorManager.java b/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/XSDValidatorManager.java
new file mode 100644
index 0000000..d19ad1c
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/XSDValidatorManager.java
@@ -0,0 +1,173 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.wst.xsd.ui.internal.validation;
+
+import java.io.IOException;
+import java.net.URL;
+import java.text.MessageFormat;
+
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IPluginDescriptor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.wst.xsd.core.internal.XSDCorePlugin;
+
+public class XSDValidatorManager extends AbstractUIPlugin 
+{
+  protected static XSDValidatorManager plugin;
+ 
+  public XSDValidatorManager(IPluginDescriptor descriptor) 
+  {
+    super(descriptor);
+    plugin = this;
+
+  }
+
+  /**
+   * Copy the w3c XMLSchema.dtd and datatypes.dtd into the plugin metadata directory
+   * for validation purposes
+   */
+  public void startup()
+  {
+    //ModelManagerPlugin plugin = (ModelManagerPlugin) Platform.getPlugin(ModelManagerPlugin.ID);
+    //modelManager = plugin.getModelManager();
+  }
+
+  //private static ModelManager modelManager;
+  //public static ModelManager getModelManager()
+  //{
+  //  return modelManager;
+  //}
+
+  /**
+   * Get the Install URL
+   */
+  public static URL getInstallURL()
+  {
+    return XSDCorePlugin.getDefault().getDescriptor().getInstallURL();
+  }
+
+  /**
+   * Return the plugin physical directory location
+   */
+  public static IPath getPluginLocation()
+  {
+    try 
+    {
+      IPath installPath = new Path(getInstallURL().toExternalForm()).removeTrailingSeparator();
+      String installStr = Platform.asLocalURL(new URL(installPath.toString())).getFile();
+      return new Path(installStr);
+    } 
+    catch (IOException e) 
+    {
+
+    }
+    return null;
+  }
+
+  /**
+   * Get the metadata directory for this plugin
+   */
+  //public static String getMetaDataDirectory()
+  //{
+  //  return getPlugin().getStateLocation().toOSString();
+  //}
+
+  /** 
+   *  Get the one xmlschema package.
+   */
+//   public XMLSchemaPackage getXMLSchemaPackage()
+//   {
+//     return xmlschemaPackage;
+//   }
+
+//   /** 
+//    *  Get the one xmlschema factory.
+//    */
+//   public XMLSchemaFactory getXMLSchemaFactory()
+//   {
+//     return (XMLSchemaFactory)xmlschemaPackage.getEFactoryInstance();
+//   }
+
+  /**
+   * Get the singleton instance.
+   */
+  public static XSDValidatorManager getInstance()
+  {
+    return plugin;
+  }
+
+
+  //public static Image getXSDImage(String iconName)
+  //{
+  //  return getPlugin().getImage(iconName);
+  //}
+
+  /**
+   * Get resource string
+   */
+  public static String getString(String key)
+  {
+    return XSDCorePlugin.getDefault().getDescriptor().getResourceBundle().getString(key);
+  }
+
+  /**
+   * Get resource string
+   */
+  public static String getString(String key, String arg0)
+  {
+    return MessageFormat.format(getString(key), new Object [] { arg0 });
+  }
+  
+  /**
+   * Get resource string
+   */
+  public static String getString(String key, String arg0, String arg1)
+  {
+    return MessageFormat.format(getString(key), new Object [] { arg0, arg1 });
+  }
+  public IWorkspace getWorkspace()
+  {
+    return ResourcesPlugin.getWorkspace();
+  }
+
+  //public static Shell getShell() 
+  //{	
+  //  return getPlugin().getWorkbench().getActiveWorkbenchWindow().getShell();
+  //}
+
+  /**
+   * Get the xml schema default namespace prefix
+   */
+  //public String getXMLSchemaPrefix()
+  //{
+  //  return getPreferenceStore().getString(CONST_XSD_DEFAULT_PREFIX_TEXT);
+  //}
+
+  /**
+   * Get the xml schema language qualification
+   */
+  //public boolean isQualifyXMLSchemaLanguage()
+  //{
+  //  return getPreferenceStore().getBoolean(CONST_XSD_LANGUAGE_QUALIFY);
+  //}
+  
+
+  
+  public static final String CONST_XSD_DEFAULT_PREFIX_TEXT = "org.eclipse.wst.xmlschema.xsdDefaultPrefixText";
+  public static final String CONST_XSD_LANGUAGE_QUALIFY = "org.eclipse.wst.xmlschema.xsdQualify";
+  
+
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDActionBarContributor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDActionBarContributor.java
index 50f2e5b..3c90b21 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDActionBarContributor.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDActionBarContributor.java
@@ -14,6 +14,7 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.ResourceBundle;
+
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.action.IMenuManager;
@@ -38,6 +39,7 @@
 import org.eclipse.wst.xsd.ui.internal.actions.ISchemaEditorActionConstants;
 import org.eclipse.wst.xsd.ui.internal.actions.ReloadDependenciesAction;
 import org.eclipse.wst.xsd.ui.internal.actions.SourcePageActionContributor;
+import org.eclipse.wst.xsd.ui.internal.refactor.actions.RefactorActionGroup;
 
 public class XSDActionBarContributor extends MultiPageEditorActionBarContributor
 {
@@ -51,7 +53,7 @@
 
   protected RetargetAction retargetReloadDependenciesAction;
   private RetargetTextEditorAction renameElementAction = null;
-  //private IMenuManager refactorMenu = null;
+  private IMenuManager refactorMenu = null;
  
   /**
    * Constructor for XSDActionBarContributor.
@@ -75,8 +77,8 @@
 	renameElementAction.setActionDefinitionId("org.eclipse.wst.xsd.ui.refactor.rename.element"); // TODO: add to contstants command id
 		
 	// the refactor menu, add the menu itself to add all refactor actions
-	//refactorMenu = new MenuManager(XSDEditorPlugin.getXSDString("refactoring.menu.label"), RefactorActionGroup.MENU_ID); //TODO: externalize string
-	//refactorMenu.add(this.renameElementAction);
+	refactorMenu = new MenuManager(XSDEditorPlugin.getXSDString("refactoring.menu.label"), RefactorActionGroup.MENU_ID); //TODO: externalize string
+	refactorMenu.add(this.renameElementAction);
   }
 
   protected void updateActions()
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDEditor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDEditor.java
index e22fa37..c8ec401 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDEditor.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDEditor.java
@@ -660,7 +660,7 @@
 		if (key == ISelectionProvider.class) {
 			result = xsdSelectionManager;
 		}
-        else if (IPropertySheetPage.class.equals(key)) {
+		if (IPropertySheetPage.class.equals(key)) {
 			fPropertySheetPage = new XSDTabbedPropertySheetPage(this);
 
 			((XSDTabbedPropertySheetPage) fPropertySheetPage).setXSDModelAdapterFactory(xsdModelAdapterFactory);
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDMenuListener.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDMenuListener.java
index 090992a..61093be 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDMenuListener.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDMenuListener.java
@@ -11,6 +11,7 @@
 package org.eclipse.wst.xsd.ui.internal;
 import java.util.ArrayList;
 import java.util.List;
+
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IMenuListener;
 import org.eclipse.jface.action.IMenuManager;
@@ -22,6 +23,7 @@
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.IWorkbenchActionConstants;
 import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.ActionContext;
 import org.eclipse.wst.xsd.ui.internal.actions.AddEnumsAction;
 import org.eclipse.wst.xsd.ui.internal.actions.AddModelGroupAction;
 import org.eclipse.wst.xsd.ui.internal.actions.BackAction;
@@ -42,6 +44,7 @@
 import org.eclipse.wst.xsd.ui.internal.actions.XSDEditNamespacesAction;
 import org.eclipse.wst.xsd.ui.internal.graph.model.Category;
 import org.eclipse.wst.xsd.ui.internal.provider.CategoryAdapter;
+import org.eclipse.wst.xsd.ui.internal.refactor.actions.RefactorActionGroup;
 import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
 import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
 import org.eclipse.xsd.XSDCompositor;
@@ -64,7 +67,7 @@
   protected XSDSchema xsdSchema;
   protected boolean isReadOnly;
   protected Object sourceContext;
-  //private RefactorActionGroup fRefactorMenuGroup;
+  private RefactorActionGroup fRefactorMenuGroup;
 
   /**
    * Constructor for XSDMenuListener.
@@ -150,7 +153,7 @@
     updateXSDSchema();
     if (xsdSchema == null)
     {
-      manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));    
+      manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
       return;
     }
     
@@ -324,15 +327,9 @@
     {
       manager.add(deleteAction);
     }
-
-    manager.add(new Separator());       
-    manager.add(new Separator("refactoring_slot")); 
-    manager.add(new Separator());       
-    manager.add(new Separator("search_slot"));       
-    manager.add(new Separator());
     
     // insertion point for popupMenus extension
-    manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); 
+    manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));    
   }
 
   protected String getBuiltInStringQName()
@@ -1678,13 +1675,11 @@
   }
   
   protected void addRefactorMenuGroup(IMenuManager manager){
-    /*
 	  	fRefactorMenuGroup = new RefactorActionGroup(selectionProvider, getXSDSchema());
      	ActionContext context= new ActionContext(selectionProvider.getSelection());
     	fRefactorMenuGroup.setContext(context);
     	fRefactorMenuGroup.fillContextMenu(manager);
     	fRefactorMenuGroup.setContext(null);
-    */    
   }
 
   protected void addCreateAnnotationAction(IMenuManager manager, String elementTag, String label, List attributes, Element parent, Node relativeNode)
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/DeleteAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/DeleteAction.java
index 5495c98..d2e4c23 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/DeleteAction.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/DeleteAction.java
@@ -11,6 +11,7 @@
 package org.eclipse.wst.xsd.ui.internal.actions;
 
 import java.util.Iterator;
+
 import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.StructuredSelection;
@@ -19,10 +20,26 @@
 import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
 import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.refactor.delete.BaseGlobalCleanup;
+import org.eclipse.wst.xsd.ui.internal.refactor.delete.GlobalAttributeCleanup;
+import org.eclipse.wst.xsd.ui.internal.refactor.delete.GlobalAttributeGroupCleanup;
+import org.eclipse.wst.xsd.ui.internal.refactor.delete.GlobalElementCleanup;
+import org.eclipse.wst.xsd.ui.internal.refactor.delete.GlobalGroupCleanup;
+import org.eclipse.wst.xsd.ui.internal.refactor.delete.GlobalSimpleOrComplexTypeCleanup;
+import org.eclipse.wst.xsd.ui.internal.refactor.delete.XSDExternalFileCleanup;
+import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
 import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
+import org.eclipse.xsd.XSDAttributeDeclaration;
+import org.eclipse.xsd.XSDAttributeGroupDefinition;
 import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDImport;
+import org.eclipse.xsd.XSDInclude;
+import org.eclipse.xsd.XSDModelGroupDefinition;
 import org.eclipse.xsd.XSDParticle;
+import org.eclipse.xsd.XSDRedefine;
 import org.eclipse.xsd.XSDSchema;
+import org.eclipse.xsd.XSDTypeDefinition;
 import org.eclipse.xsd.util.XSDConstants;
 import org.w3c.dom.Node;
 
@@ -144,7 +161,6 @@
   protected boolean cleanupReferences(Node deletedNode)
   {
     boolean refresh = false;
-    /*
     XSDConcreteComponent comp = getSchema().getCorrespondingComponent(deletedNode);
     
     if (comp instanceof XSDInclude ||
@@ -211,7 +227,7 @@
       {
         cleanHelper.visitSchema(getSchema());
       }
-    }*/
+    }
     return refresh;
   }
 
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xml/XMLComponentFinder.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xml/XMLComponentFinder.java
index 9c1bf72..d73adcb 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xml/XMLComponentFinder.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xml/XMLComponentFinder.java
@@ -10,7 +10,16 @@
  *******************************************************************************/
 package org.eclipse.wst.xsd.ui.internal.dialogs.types.xml;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
 
 /**
  * this thing parsers xml artifacts and picks out the specified components attributes
@@ -21,8 +30,12 @@
     public static final int ENTIRE_WORKSPACE_SCOPE = 1;
 
     protected IFile currentIFile;
+	protected List validExtensions;			// List of extensions as String objects
+	protected List excludeFiles;			// List of files (full path) as String objects
 
 	public XMLComponentFinder() {
+		validExtensions = new ArrayList();
+		excludeFiles = new ArrayList();
 	}
     
     /*
@@ -33,4 +46,69 @@
     public void setFile(IFile file) {
         currentIFile = file;
     }
+    
+    public void setValidExtensions(List newExtensions) {
+        validExtensions.clear();
+        validExtensions.addAll(newExtensions);
+    }
+
+    public void addExcludeFiles(List newExclude) {
+        excludeFiles.addAll(newExclude);
+    }
+
+    /*
+     * Returns a List of absolute file locations. For example
+     * "D:\files\....\file.xsd"
+     */
+    protected List getEnclosingProjectFiles() {
+        List files = new ArrayList();
+        
+        if (currentIFile != null) {
+            IProject project = currentIFile.getProject();
+            try {
+                traverseIContainer(project, validExtensions, excludeFiles, files);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        
+        return files;
+    }
+
+    protected List getWorkspaceFiles() {
+        List files = new ArrayList();
+        IWorkspaceRoot iwr = ResourcesPlugin.getWorkspace().getRoot();
+        IProject[] projects = iwr.getProjects();
+
+        try {
+            for (int index = 0; index < projects.length; index++) {
+                traverseIContainer(projects[index], validExtensions, excludeFiles, files);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return files;
+    }
+
+    /**
+     * Returns a List of absolute file locations. For example
+     * "D:\files\....\file.xsd"
+     */
+    protected void traverseIContainer(IContainer container, List extensions, List excludeFiles, List list) throws Exception {
+        IResource[] children = container.members();
+
+        for (int index = 0; index < children.length; index++) {
+            if (children[index] instanceof IFolder) {
+                traverseIContainer((IFolder) children[index], extensions, excludeFiles, list);
+            } else if (children[index] instanceof IFile) {
+                IFile file = (IFile) children[index];
+                String fileName = file.getLocation().toOSString();
+                String ext = file.getFileExtension();
+                if (extensions.contains(ext) && !excludeFiles.contains(fileName)) {
+                    list.add(file.getLocation());
+                }
+            }
+        }
+    }
 }
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xml/XMLComponentSelectionProvider.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xml/XMLComponentSelectionProvider.java
index 5e6bd78..aef0a01 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xml/XMLComponentSelectionProvider.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xml/XMLComponentSelectionProvider.java
@@ -19,7 +19,6 @@
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
 import org.eclipse.wst.xsd.ui.internal.dialogs.types.common.IComponentList;
 import org.eclipse.wst.xsd.ui.internal.dialogs.types.common.IComponentSelectionProvider;
 
@@ -53,8 +52,8 @@
             if (treeObject.getName().equals(dataItem.getAttributeInfo("name"))) {
                 // If the existing data item and the new data item have the same names
                 if (treeObject.getXMLComponentSpecification().size() > 0) {
-                    QualifiedName metaName = ((XMLComponentSpecification) treeObject.getXMLComponentSpecification().get(0)).getMetaName();
-                    if (metaName.equals(dataItem.getMetaName())) {
+                    String existingPath = ((XMLComponentSpecification) treeObject.getXMLComponentSpecification().get(0)).getTagPath();
+                    if (existingPath.equals(dataItem.getTagPath())) {
                         // If they are the same 'type' of items (according to the path value)
                         containingTreeObject = treeObject;
                         foundMatch = true;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xml/XMLComponentSpecification.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xml/XMLComponentSpecification.java
index 321a5a3..04c2546 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xml/XMLComponentSpecification.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xml/XMLComponentSpecification.java
@@ -11,21 +11,19 @@
 package org.eclipse.wst.xsd.ui.internal.dialogs.types.xml;
 
 import java.util.Hashtable;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
 
 /*
  * Simple class which keeps track of attribute information.
  * This class is basically a Hashtable with convenience methods.
  */
 public class XMLComponentSpecification {
-  
-    QualifiedName metaName;    
+    String tagPath;
     Hashtable hashtable;
     String targetNamespace;
     String fileLocation;
     
-    public XMLComponentSpecification(QualifiedName metaName) {
-        this.metaName = metaName;
+    public XMLComponentSpecification(String path) {
+        this.tagPath = path;
         hashtable = new Hashtable();
     }
     
@@ -37,8 +35,8 @@
         return hashtable.get(attribute);
     }
     
-    public QualifiedName getMetaName() {
-        return metaName;
+    public String getTagPath() {
+        return tagPath;
     }
     
     public String getTargetNamespace() {
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xml/XMLQuickScan.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xml/XMLQuickScan.java
new file mode 100644
index 0000000..30409c2
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xml/XMLQuickScan.java
@@ -0,0 +1,130 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.dialogs.types.xml;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.xml.sax.Attributes;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.XMLReader;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ *
+ */
+public class XMLQuickScan {
+  
+	/*
+	 * Returns information about matches encountered
+     * based on the criteria provided. 
+	 */
+  public static List getTagInfo(String fullFilePath, List paths, List attributes) {
+    XSDGlobalElementTypeContentHandler handler = new XSDGlobalElementTypeContentHandler();
+    handler.stringTagPaths = paths;
+    handler.searchAttributes = attributes;
+    handler.fileLocation = fullFilePath;
+
+    ClassLoader prevClassLoader = Thread.currentThread().getContextClassLoader();
+    
+    try {
+        IPath path = new Path(fullFilePath);
+    	FileInputStream inputStream = new FileInputStream(new File(path.toOSString()));
+    	
+        
+//      SAXParser  sparser = SAXParserFactory.newInstance().newSAXParser();
+//      XMLReader reader = sparser.getXMLReader();
+        
+        // Line below is a hack to get XMLReader working
+        Thread.currentThread().setContextClassLoader(XMLQuickScan.class.getClassLoader());
+        
+    	XMLReader reader = org.xml.sax.helpers.XMLReaderFactory.createXMLReader();
+    	reader.setContentHandler(handler);
+    	reader.parse(new InputSource(inputStream));
+    }
+    catch (Exception e) {
+    	e.printStackTrace();
+    }
+    finally {
+      Thread.currentThread().setContextClassLoader(prevClassLoader);
+    }
+    return handler.getSearchAttributeValues();
+  }
+  
+  public static class XSDGlobalElementTypeContentHandler extends DefaultHandler {
+  	protected List stringTagPaths;
+  	protected List searchAttributes;
+  	private List matchingTags = new ArrayList();
+  	private String targetNamespace = "";
+  	private String fileLocation;
+
+  	StringBuffer currentPath = new StringBuffer();
+  	
+    public void startElement(String uri, String localName, String qName, Attributes attributes)  throws SAXException {
+    	currentPath.append("/" + localName);
+    	
+    	// Search for targetNamespace if we haven't encountered it yet.
+    	if (targetNamespace.equals("")) {
+	        int nAttributes = attributes.getLength();
+	        for (int i = 0; i < nAttributes; i++)
+	        {
+	          if (attributes.getLocalName(i).equals("targetNamespace"))
+	          {
+	            targetNamespace = attributes.getValue(i);
+	            break;
+	          }
+	        }
+    	}
+    	
+    	// Search for the path
+    	for (int index = 0; index < stringTagPaths.size(); index++) {
+    		String path = (String) stringTagPaths.get(index);
+    		if (currentPath.length() == path.length() && currentPath.toString().equals(path)) {
+    			// Found a path match
+    			createTagInfo(attributes, (String[]) searchAttributes.get(index));
+    		}
+    	}
+    }
+    
+    public void endElement(String uri, String localName, String qName) throws SAXException {
+    	int slashIndex = currentPath.lastIndexOf("/");
+    	currentPath.delete(slashIndex, currentPath.length());
+    }
+    
+    /*
+     * Information about a tag is stored in a TagInfo class.
+     */
+    private void createTagInfo(Attributes attributes, String[] attributesToSearch) {
+    	XMLComponentSpecification spec = new XMLComponentSpecification(currentPath.toString());
+    	
+//    	tagInfo.addAttributeInfo("name", attributes.getValue("name"));
+    	for (int index = 0; index < attributesToSearch.length; index++) {
+    		String attrString = (String) attributesToSearch[index];
+    		String value = attributes.getValue(attrString);
+    		if (value != null) {
+    			spec.addAttributeInfo(attrString, value);
+    		}
+    	}
+    	spec.setTargetNamespace(targetNamespace);
+    	spec.setFileLocation(fileLocation);
+    	matchingTags.add(spec);
+    }
+        
+    public List getSearchAttributeValues() {
+    	return matchingTags;
+    }
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xsd/XSDComponentFinder.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xsd/XSDComponentFinder.java
index e52e53d..7f9fc7d 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xsd/XSDComponentFinder.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xsd/XSDComponentFinder.java
@@ -13,83 +13,58 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.wst.common.core.search.SearchEngine;
-import org.eclipse.wst.common.core.search.SearchMatch;
-import org.eclipse.wst.common.core.search.SearchParticipant;
-import org.eclipse.wst.common.core.search.SearchPlugin;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-import org.eclipse.wst.common.core.search.scope.ProjectSearchScope;
-import org.eclipse.wst.common.core.search.scope.SearchScope;
-import org.eclipse.wst.common.core.search.scope.WorkspaceSearchScope;
-import org.eclipse.wst.common.core.search.util.CollectingSearchRequestor;
-import org.eclipse.wst.xml.core.internal.search.XMLComponentDeclarationPattern;
+
+import org.eclipse.core.runtime.Path;
 import org.eclipse.wst.xsd.ui.internal.dialogs.types.xml.XMLComponentFinder;
-import org.eclipse.wst.xsd.ui.internal.dialogs.types.xml.XMLComponentSpecification;
-import org.eclipse.wst.xsd.ui.internal.search.IXSDSearchConstants;
+import org.eclipse.wst.xsd.ui.internal.dialogs.types.xml.XMLQuickScan;
 
 public class XSDComponentFinder extends XMLComponentFinder {    
     public XSDComponentFinder() {
-    }
-    
-    protected void findTypes(SearchEngine searchEngine, List list, int scope, QualifiedName metaName)
-    {      
-      SearchScope searchScope = new WorkspaceSearchScope();
-      if (scope == ENCLOSING_PROJECT_SCOPE)
-      {
-        searchScope = new ProjectSearchScope(currentIFile.getProject().getLocation());
-      }       
-      try {
-          CollectingSearchRequestor requestor = new CollectingSearchRequestor();
-          
-          XMLComponentDeclarationPattern pattern = new XMLComponentDeclarationPattern(new QualifiedName("*", "*"), metaName, SearchPattern.R_PATTERN_MATCH);
-          SearchParticipant particpant = SearchPlugin.getDefault().getSearchParticipant("org.eclipse.wst.xsd.search.XSDSearchParticipant");
-          
-          // for now we assume that we only want to include the xsd related participant
-          // that way we don't get SearchMatches for things withing WSDL files
-          // TODO... rethink this... since folks should be capable of changing the 'xsd' search participant impl
-          // without killing this logic
-          SearchParticipant[] participants = { particpant };          
-          searchEngine.search(pattern, requestor, participants, searchScope, new NullProgressMonitor());
-          
-          for (Iterator i = requestor.getResults().iterator(); i.hasNext(); )
-          {
-            SearchMatch match = (SearchMatch)i.next();
-            XMLComponentSpecification spec = new XMLComponentSpecification(metaName);
-            spec.setFileLocation(match.getFile().getLocation().toString());
-            Object o = match.map.get("name");
-            if (o != null && o instanceof QualifiedName)
-            {  
-              QualifiedName qualifiedName = (QualifiedName)o;
-              if (qualifiedName.getLocalName() != null)
-              {  
-                spec.addAttributeInfo("name", qualifiedName.getLocalName());
-                spec.setTargetNamespace(qualifiedName.getNamespace());
-                list.add(spec);
-              }  
-            }  
-          }  
-      } catch (CoreException e) {
-        e.printStackTrace();
-          //status.add(e.getStatus());
-      }      
+        validExtensions.add("xsd");
     }
     
     public List getWorkbenchResourceComponents(int scope) {
-      // TODO... by making this method return a list... we're cutting off any chance provide asynchronous friendly
-      // behaviour where we populate the list and refresh the dialog after every few updates or seconds
-      // returning a list makes this an all or nothing deal
-      //
-      List list = new ArrayList();
-      SearchEngine searchEngine = new SearchEngine();
-      // TODO... we need a way to combine these into a single search!!
-      // we can make this search 2X faster by doing so
-      // either we should combine COMPLEX_TYPE_META_NAME and SIMPLE_TYPE_META_NAME into a single TYPE_META_NAME
-      // or we'll need to introduce a way to 'OR' SearchPatterns ... which may be tricky!
-      findTypes(searchEngine, list, scope, IXSDSearchConstants.COMPLEX_TYPE_META_NAME);
-      findTypes(searchEngine, list, scope, IXSDSearchConstants.SIMPLE_TYPE_META_NAME);    
-      return list;
+        List components = new ArrayList();
+        List filePaths = new ArrayList();
+        
+        // We don't want to search through the current file we're working on.
+        if (currentIFile != null) {
+            excludeFiles.add(currentIFile.getLocation().toOSString());
+        }
+        
+        // Find files matching the search criteria specified in List extensions and
+        // List excludeFiles.
+        switch (scope) {
+        case ENCLOSING_PROJECT_SCOPE:
+            filePaths = getEnclosingProjectFiles();
+            break;
+            
+        case ENTIRE_WORKSPACE_SCOPE:
+            filePaths = getWorkspaceFiles();
+            break;
+            
+        default:            
+            break;
+        }
+        
+        // Search for the components in each of the files specified in the path.
+        List paths = new ArrayList();
+        paths.add("/schema/complexType");
+        paths.add("/schema/simpleType");
+        
+        List attributes = new ArrayList();
+        String[] nameAttr = new String[1];
+        nameAttr[0] = "name";
+        attributes.add(nameAttr);
+        attributes.add(nameAttr);
+
+        Iterator pathsIterator = filePaths.iterator();
+        while (pathsIterator.hasNext()) {
+//           String stringPath = ((Path) pathsIterator.next()).toOSString();
+           String stringPath = ((Path) pathsIterator.next()).toString();
+           components.addAll(XMLQuickScan.getTagInfo(stringPath, paths, attributes));
+        }
+        
+        return components;
     }
 }
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xsd/XSDComponentSelectionProvider.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xsd/XSDComponentSelectionProvider.java
index 8aa8178..d1936d4 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xsd/XSDComponentSelectionProvider.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xsd/XSDComponentSelectionProvider.java
@@ -22,7 +22,6 @@
 import org.eclipse.wst.xsd.ui.internal.dialogs.types.xml.XMLComponentFinder;
 import org.eclipse.wst.xsd.ui.internal.dialogs.types.xml.XMLComponentSelectionProvider;
 import org.eclipse.wst.xsd.ui.internal.dialogs.types.xml.XMLComponentSpecification;
-import org.eclipse.wst.xsd.ui.internal.search.IXSDSearchConstants;
 import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
 import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
 import org.eclipse.xsd.XSDComplexTypeDefinition;
@@ -119,10 +118,10 @@
         Iterator itemsIterator = comps.iterator();
         while (itemsIterator.hasNext()) {
             XMLComponentSpecification tagItem = (XMLComponentSpecification) itemsIterator.next();
-            if (tagItem.getMetaName() == IXSDSearchConstants.COMPLEX_TYPE_META_NAME) {
+            if (tagItem.getTagPath().equals("/schema/complexType")) {
                 complex.add(tagItem);
             }               
-            else if (tagItem.getMetaName() == IXSDSearchConstants.SIMPLE_TYPE_META_NAME) {
+            else if (tagItem.getTagPath().equals("/schema/simpleType")) {
                 simple.add(tagItem);
             }
         }
@@ -160,7 +159,7 @@
             Object item = it.next();
             String itemString = item.toString();
             
-            XMLComponentSpecification builtInTypeItem = new XMLComponentSpecification(null);
+            XMLComponentSpecification builtInTypeItem = new XMLComponentSpecification("BUILT_IN_SIMPLE_TYPE");
             builtInTypeItem.addAttributeInfo("name", itemString);
             builtInTypeItem.setTargetNamespace(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001);
 //            String normalizedFile = getNormalizedLocation(schema.getSchemaLocation());
@@ -292,11 +291,11 @@
             if (proceed) {
                 XMLComponentSpecification typeItem =  null;
                 if (showComplexTypes && item instanceof XSDComplexTypeDefinition) {
-                    typeItem = new XMLComponentSpecification(IXSDSearchConstants.COMPLEX_TYPE_META_NAME);
+                    typeItem = new XMLComponentSpecification("/schema/complexType");
                     typeItem.addAttributeInfo("name", ((XSDComplexTypeDefinition) item).getName());
                 }
                 else if (item instanceof XSDSimpleTypeDefinition) {
-                    typeItem = new XMLComponentSpecification(IXSDSearchConstants.SIMPLE_TYPE_META_NAME);
+                    typeItem = new XMLComponentSpecification("/schema/simpleType");
                     typeItem.addAttributeInfo("name", ((XSDSimpleTypeDefinition) item).getName());
                 }
                 
@@ -321,13 +320,13 @@
         public Image getImage(Object element) {
             XMLComponentTreeObject specification = (XMLComponentTreeObject) element;
             XMLComponentSpecification spec = (XMLComponentSpecification) specification.getXMLComponentSpecification().get(0);
-            if (spec.getMetaName() == IXSDSearchConstants.COMPLEX_TYPE_META_NAME) {
+            if (spec.getTagPath().equals("/schema/complexType")) {
                 return XSDEditorPlugin.getXSDImage("icons/XSDComplexType.gif");
             }
-            else if (spec.getMetaName() == IXSDSearchConstants.SIMPLE_TYPE_META_NAME) {
+            else if (spec.getTagPath().equals("/schema/simpleType")) {
                 return XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif");
             }
-            else if (spec.getMetaName() == null) {
+            else if (spec.getTagPath().equals("BUILT_IN_SIMPLE_TYPE")) {
                 return XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif");
             }
     
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xsd/XSDSetTypeHelper.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xsd/XSDSetTypeHelper.java
index 5c45e43..a5b8e17 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xsd/XSDSetTypeHelper.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xsd/XSDSetTypeHelper.java
@@ -14,16 +14,16 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
 import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
 import org.eclipse.wst.xsd.ui.internal.actions.CreateElementAction;
 import org.eclipse.wst.xsd.ui.internal.actions.DOMAttribute;
 import org.eclipse.wst.xsd.ui.internal.dialogs.types.xml.XMLComponentSpecification;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.XSDExternalFileCleanup;
+import org.eclipse.wst.xsd.ui.internal.refactor.delete.XSDExternalFileCleanup;
 import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
 import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
 import org.eclipse.xsd.XSDImport;
@@ -59,7 +59,7 @@
         }
 
         if (!XSDDOMHelper.inputEquals(element, XSDConstants.UNION_ELEMENT_TAG, false))
-        {/*
+        {
             if (spec != null && spec.getTagPath().equals("**anonymous**"))
             {
               if (spec.getTagPath().equals("ANONYMOUS_SIMPLE_TYPE"))
@@ -79,7 +79,7 @@
               // element.removeAttribute(XSDConstants.TYPE_ATTRIBUTE);
               element.removeAttribute(property);
             }
-            else*/
+            else
             {
               XSDDOMHelper.updateElementToNotAnonymous(element);
               //element.setAttribute(XSDConstants.TYPE_ATTRIBUTE, typeObject.toString());
@@ -92,9 +92,9 @@
         
         // Get the new type --> typeObject
         if (spec != null) {
-            QualifiedName metaName = spec.getMetaName();
+            String itemType = spec.getTagPath();
            
-            if (metaName != null) {
+            if (!itemType.equals("BUILT_IN_SIMPLE_TYPE")) {
                 // Do an actual import if needed
                 XSDParser parser = new XSDParser();
                 parser.parse(spec.getFileLocation());
@@ -236,14 +236,14 @@
         // Referential integrity on old import
         // How can we be sure that if the newlocation is the same as the oldlocation
         // the file hasn't changed
-                
+        
         XSDSchema referencedSchema = xsdImport.getResolvedSchema();
         if (referencedSchema != null)
         {
           XSDExternalFileCleanup cleanHelper = new XSDExternalFileCleanup(referencedSchema);
           cleanHelper.visitSchema(xsdSchema);
         }
-         
+
         Element schemaElement = xsdSchema.getElement();
 
         // update the xmlns in the schema element first, and then update the import element next
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/ComponentNameDirectEditManager.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/ComponentNameDirectEditManager.java
index 03c23e6..5f25abc 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/ComponentNameDirectEditManager.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/ComponentNameDirectEditManager.java
@@ -14,7 +14,14 @@
 import org.eclipse.gef.GraphicalEditPart;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.wst.xsd.ui.internal.graph.editparts.TopLevelComponentEditPart;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalElementRenamer;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalGroupRenamer;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalSimpleOrComplexTypeRenamer;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDModelGroupDefinition;
 import org.eclipse.xsd.XSDNamedComponent;
+import org.eclipse.xsd.XSDTypeDefinition;
+import org.eclipse.xsd.util.XSDSwitch;
 
 
 
@@ -50,10 +57,8 @@
       this.name = name;
     }                                                              
 
-    public void run()       
-    { 
-      //TODO cs : revisit
-      /*                            
+    public void run()
+    {                             
       XSDSwitch xsdSwitch = new XSDSwitch()
       {                   
         public Object caseXSDTypeDefinition(XSDTypeDefinition object)
@@ -77,7 +82,7 @@
           return null;
         }
       };
-      xsdSwitch.doSwitch(component);*/ 
+      xsdSwitch.doSwitch(component); 
       component.setName(name);
       if (mySource instanceof TopLevelComponentEditPart)
       {
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AttributePropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AttributePropertySource.java
index b6413fe..0365346 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AttributePropertySource.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AttributePropertySource.java
@@ -12,6 +12,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.views.properties.IPropertyDescriptor;
@@ -19,6 +20,7 @@
 import org.eclipse.ui.views.properties.PropertyDescriptor;
 import org.eclipse.ui.views.properties.TextPropertyDescriptor;
 import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalAttributeRenamer;
 import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
 import org.eclipse.xsd.XSDAttributeDeclaration;
 import org.eclipse.xsd.XSDConcreteComponent;
@@ -221,9 +223,8 @@
           {
             XSDAttributeDeclaration xsdAttributeDeclaration = (XSDAttributeDeclaration)comp;
             xsdAttributeDeclaration.setName((String)value);
-            //TODO : cs revisit
-            //GlobalAttributeRenamer renamer = new GlobalAttributeRenamer(xsdAttributeDeclaration, (String)value);
-            //renamer.visitSchema(xsdSchema);
+            GlobalAttributeRenamer renamer = new GlobalAttributeRenamer(xsdAttributeDeclaration, (String)value);
+            renamer.visitSchema(xsdSchema);
           }
         }
         element.setAttribute(XSDConstants.NAME_ATTRIBUTE, (String)value);
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ComplexTypePropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ComplexTypePropertySource.java
index aa358e6..0e759c1 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ComplexTypePropertySource.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ComplexTypePropertySource.java
@@ -12,15 +12,18 @@
 
 import java.util.ArrayList;
 import java.util.List;
+
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.views.properties.IPropertyDescriptor;
 import org.eclipse.ui.views.properties.IPropertySource;
 import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
 import org.eclipse.wst.xsd.ui.internal.actions.SetBaseTypeAction;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalSimpleOrComplexTypeRenamer;
 import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
 import org.eclipse.xsd.XSDComplexTypeDefinition;
 import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDNamedComponent;
 import org.eclipse.xsd.XSDSchema;
 import org.eclipse.xsd.util.XSDConstants;
 import org.w3c.dom.Element;
@@ -219,9 +222,8 @@
               {
 //                XSDComplexTypeDefinition ct = (XSDComplexTypeDefinition)comp;
 //                ct.setName(newValue);
-                //TODO : cs revisit
-                //GlobalSimpleOrComplexTypeRenamer renamer = new GlobalSimpleOrComplexTypeRenamer((XSDNamedComponent)comp, newValue);
-                //renamer.visitSchema(xsdSchema);
+                GlobalSimpleOrComplexTypeRenamer renamer = new GlobalSimpleOrComplexTypeRenamer((XSDNamedComponent)comp, newValue);
+                renamer.visitSchema(xsdSchema);
               }
             }
             element.setAttribute(XSDConstants.NAME_ATTRIBUTE, newValue);
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/DocumentationPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/DocumentationPropertySource.java
index 0dfda24..06e9ef7 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/DocumentationPropertySource.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/DocumentationPropertySource.java
@@ -12,6 +12,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.views.properties.IPropertyDescriptor;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ElementPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ElementPropertySource.java
index 9f21082..65416ac 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ElementPropertySource.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ElementPropertySource.java
@@ -12,6 +12,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.views.properties.IPropertyDescriptor;
@@ -19,9 +20,12 @@
 import org.eclipse.ui.views.properties.PropertyDescriptor;
 import org.eclipse.ui.views.properties.TextPropertyDescriptor;
 import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalElementRenamer;
 import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
 import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
 import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDNamedComponent;
 import org.eclipse.xsd.XSDSchema;
 import org.eclipse.xsd.util.XSDConstants;
 import org.w3c.dom.Attr;
@@ -326,13 +330,11 @@
           if (xsdSchema != null)
           {
             XSDConcreteComponent comp = xsdSchema.getCorrespondingComponent(element);
-            
-            // TODO cs : revisit
-            //if (comp != null && comp instanceof XSDElementDeclaration && comp.getContainer().equals(xsdSchema))
-            //{
-              //GlobalElementRenamer renamer = new GlobalElementRenamer((XSDNamedComponent)comp, newValue);
-              //renamer.visitSchema(xsdSchema);
-            //}
+            if (comp != null && comp instanceof XSDElementDeclaration && comp.getContainer().equals(xsdSchema))
+            {
+              GlobalElementRenamer renamer = new GlobalElementRenamer((XSDNamedComponent)comp, newValue);
+              renamer.visitSchema(xsdSchema);
+            }
           }
         }
       }
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/EnumerationPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/EnumerationPropertySource.java
index 31b7d35..65124f7 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/EnumerationPropertySource.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/EnumerationPropertySource.java
@@ -12,6 +12,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.views.properties.IPropertyDescriptor;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/GroupRefPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/GroupRefPropertySource.java
index ffe87ae..0067c48 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/GroupRefPropertySource.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/GroupRefPropertySource.java
@@ -12,6 +12,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.ui.views.properties.IPropertyDescriptor;
 import org.eclipse.ui.views.properties.IPropertySource;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ImportPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ImportPropertySource.java
index 6172f69..cadd611 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ImportPropertySource.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ImportPropertySource.java
@@ -13,6 +13,7 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+
 import org.eclipse.core.resources.IFile;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.widgets.Display;
@@ -22,7 +23,7 @@
 import org.eclipse.ui.views.properties.TextPropertyDescriptor;
 import org.eclipse.wst.xsd.ui.internal.XSDEditorContextIds;
 import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.XSDExternalFileCleanup;
+import org.eclipse.wst.xsd.ui.internal.refactor.delete.XSDExternalFileCleanup;
 import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
 import org.eclipse.wst.xsd.ui.internal.util.XSDSchemaHelper;
 import org.eclipse.xsd.XSDConcreteComponent;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/IncludePropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/IncludePropertySource.java
index d1e9e12..b5054ac 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/IncludePropertySource.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/IncludePropertySource.java
@@ -12,13 +12,14 @@
 
 import java.util.ArrayList;
 import java.util.List;
+
 import org.eclipse.core.resources.IFile;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.views.properties.IPropertyDescriptor;
 import org.eclipse.ui.views.properties.IPropertySource;
 import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.XSDExternalFileCleanup;
+import org.eclipse.wst.xsd.ui.internal.refactor.delete.XSDExternalFileCleanup;
 import org.eclipse.xsd.XSDConcreteComponent;
 import org.eclipse.xsd.XSDInclude;
 import org.eclipse.xsd.XSDSchema;
@@ -161,7 +162,7 @@
 
       XSDSchema referencedSchema = include.getResolvedSchema();
       if (referencedSchema != null)
-      {        
+      {
         XSDExternalFileCleanup cleanHelper = new XSDExternalFileCleanup(referencedSchema);
         cleanHelper.visitSchema(xsdSchema);
         
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/KeyrefPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/KeyrefPropertySource.java
index f4fcab1..19e95ce 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/KeyrefPropertySource.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/KeyrefPropertySource.java
@@ -13,6 +13,7 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.views.properties.IPropertyDescriptor;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ModelGroupPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ModelGroupPropertySource.java
index 728e613..228860c 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ModelGroupPropertySource.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ModelGroupPropertySource.java
@@ -12,6 +12,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.views.properties.IPropertyDescriptor;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/NamePropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/NamePropertySource.java
index 9c31405..bbfb786 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/NamePropertySource.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/NamePropertySource.java
@@ -12,6 +12,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.views.properties.IPropertyDescriptor;
@@ -19,8 +20,13 @@
 import org.eclipse.ui.views.properties.PropertyDescriptor;
 import org.eclipse.ui.views.properties.TextPropertyDescriptor;
 import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalAttributeGroupRenamer;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalGroupRenamer;
 import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
+import org.eclipse.xsd.XSDAttributeGroupDefinition;
 import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDModelGroupDefinition;
+import org.eclipse.xsd.XSDNamedComponent;
 import org.eclipse.xsd.XSDSchema;
 import org.eclipse.xsd.util.XSDConstants;
 
@@ -137,13 +143,11 @@
           if (xsdSchema != null)
           {
             XSDConcreteComponent comp = xsdSchema.getCorrespondingComponent(element);
-            
-            // TODO cs : revisit
-            //if (comp != null && comp instanceof XSDAttributeGroupDefinition && comp.getContainer().equals(xsdSchema))
-            //{
-            //  GlobalAttributeGroupRenamer renamer = new GlobalAttributeGroupRenamer((XSDNamedComponent)comp, (String)value);
-            //  renamer.visitSchema(xsdSchema);
-            //}
+            if (comp != null && comp instanceof XSDAttributeGroupDefinition && comp.getContainer().equals(xsdSchema))
+            {
+              GlobalAttributeGroupRenamer renamer = new GlobalAttributeGroupRenamer((XSDNamedComponent)comp, (String)value);
+              renamer.visitSchema(xsdSchema);
+            }
           }
           element.setAttribute(XSDConstants.NAME_ATTRIBUTE, (String)value);
           endRecording(element);
@@ -188,13 +192,12 @@
             // now rename any references to this element
             if (xsdSchema != null)
              {
-              // TODO cs : revisit
-              //XSDConcreteComponent comp = xsdSchema.getCorrespondingComponent(element);
-              //if (comp != null && comp instanceof XSDModelGroupDefinition && comp.getContainer().equals(xsdSchema))
-              //{
-              //  GlobalGroupRenamer renamer = new GlobalGroupRenamer((XSDNamedComponent)comp, newValue);
-              //  renamer.visitSchema(xsdSchema);
-              //}
+              XSDConcreteComponent comp = xsdSchema.getCorrespondingComponent(element);
+              if (comp != null && comp instanceof XSDModelGroupDefinition && comp.getContainer().equals(xsdSchema))
+              {
+                GlobalGroupRenamer renamer = new GlobalGroupRenamer((XSDNamedComponent)comp, newValue);
+                renamer.visitSchema(xsdSchema);
+              }
             }
             element.setAttribute(XSDConstants.NAME_ATTRIBUTE, newValue);
             endRecording(element);
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/NotationPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/NotationPropertySource.java
index 829e192..573d83d 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/NotationPropertySource.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/NotationPropertySource.java
@@ -12,6 +12,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.views.properties.IPropertyDescriptor;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/PatternPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/PatternPropertySource.java
index c437e4c..38f166a 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/PatternPropertySource.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/PatternPropertySource.java
@@ -12,6 +12,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+
 import org.eclipse.jface.viewers.CellEditor;
 import org.eclipse.jface.viewers.DialogCellEditor;
 import org.eclipse.jface.viewers.Viewer;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ReadOnlyPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ReadOnlyPropertySource.java
index 46ca063..0f5cb7f 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ReadOnlyPropertySource.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ReadOnlyPropertySource.java
@@ -12,6 +12,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.views.properties.IPropertyDescriptor;
 import org.eclipse.ui.views.properties.IPropertySource;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SchemaPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SchemaPropertySource.java
index 0ae4888..2d8b402 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SchemaPropertySource.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SchemaPropertySource.java
@@ -15,6 +15,7 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.views.properties.IPropertyDescriptor;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleContentPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleContentPropertySource.java
index 9df52c1..6b33262 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleContentPropertySource.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleContentPropertySource.java
@@ -12,6 +12,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.views.properties.IPropertyDescriptor;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleRestrictPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleRestrictPropertySource.java
index 49124a9..4d07c0b 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleRestrictPropertySource.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleRestrictPropertySource.java
@@ -13,6 +13,7 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.views.properties.IPropertyDescriptor;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleTypeListPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleTypeListPropertySource.java
index 17c4bef..b49ceb1 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleTypeListPropertySource.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleTypeListPropertySource.java
@@ -12,6 +12,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.widgets.Display;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleTypePropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleTypePropertySource.java
index 12d5da9..99885fa 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleTypePropertySource.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleTypePropertySource.java
@@ -12,6 +12,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.views.properties.IPropertyDescriptor;
@@ -19,8 +20,10 @@
 import org.eclipse.ui.views.properties.PropertyDescriptor;
 import org.eclipse.ui.views.properties.TextPropertyDescriptor;
 import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalSimpleOrComplexTypeRenamer;
 import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
 import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDNamedComponent;
 import org.eclipse.xsd.XSDSchema;
 import org.eclipse.xsd.XSDSimpleTypeDefinition;
 import org.eclipse.xsd.util.XSDConstants;
@@ -153,9 +156,8 @@
             if (comp != null && comp instanceof XSDSimpleTypeDefinition && comp.getContainer().equals(xsdSchema))
             {
 //                ((XSDNamedComponent)comp).setName(name);
-              // TODO CS : revisit
-              //GlobalSimpleOrComplexTypeRenamer renamer = new GlobalSimpleOrComplexTypeRenamer((XSDNamedComponent)comp, name);
-              //renamer.visitSchema(xsdSchema);
+              GlobalSimpleOrComplexTypeRenamer renamer = new GlobalSimpleOrComplexTypeRenamer((XSDNamedComponent)comp, name);
+              renamer.visitSchema(xsdSchema);
             }
           }
           element.setAttribute(XSDConstants.NAME_ATTRIBUTE, name);
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleTypeUnionPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleTypeUnionPropertySource.java
index d66b32c..68584b4 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleTypeUnionPropertySource.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleTypeUnionPropertySource.java
@@ -13,6 +13,7 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.StringTokenizer;
+
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.viewers.CellEditor;
 import org.eclipse.jface.viewers.DialogCellEditor;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/TypesPropertyDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/TypesPropertyDescriptor.java
index 961be94..60e238a 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/TypesPropertyDescriptor.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/TypesPropertyDescriptor.java
@@ -11,6 +11,7 @@
 package org.eclipse.wst.xsd.ui.internal.properties;
 
 import java.util.List;
+
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.viewers.CellEditor;
 import org.eclipse.jface.viewers.DialogCellEditor;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/XPathPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/XPathPropertySource.java
index 829dc16..9a5d893 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/XPathPropertySource.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/XPathPropertySource.java
@@ -12,6 +12,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.views.properties.IPropertyDescriptor;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/XSDComboBoxPropertyDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/XSDComboBoxPropertyDescriptor.java
index 1bcfb2d..b4d9cc2 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/XSDComboBoxPropertyDescriptor.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/XSDComboBoxPropertyDescriptor.java
@@ -11,6 +11,7 @@
 package org.eclipse.wst.xsd.ui.internal.properties;
 
 import java.text.MessageFormat;
+
 import org.eclipse.jface.util.Assert;
 import org.eclipse.jface.viewers.CellEditor;
 import org.eclipse.swt.SWT;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AbstractSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AbstractSection.java
index d96ec4b..9f4bd90 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AbstractSection.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AbstractSection.java
@@ -46,16 +46,16 @@
 import org.eclipse.xsd.XSDSchema;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
-//import org.apache.xerces.util.XMLChar;
+
 
 public class AbstractSection implements ISection, IPropertyChangeListener, Listener, SelectionListener
 {
-    private TabbedPropertySheetWidgetFactory factory;
-    protected IWorkbenchPart part;
-    protected ISelection selection;
-    protected Object input;
+	private TabbedPropertySheetWidgetFactory factory;
+	protected IWorkbenchPart part;
+	protected ISelection selection;
+	protected Object input;
   protected boolean doRefresh = true;
-    XSDSchema xsdSchema;
+	XSDSchema xsdSchema;
   protected boolean isReadOnly = false;
   private IStatusLineManager statusLine;
   protected Composite composite;
@@ -70,7 +70,7 @@
     super();
   }
   
-  public void createControls(Composite parent,  TabbedPropertySheetPage tabbedPropertySheetPage)
+  public void createControls(Composite parent,	TabbedPropertySheetPage tabbedPropertySheetPage)
   {
     createControls(parent, tabbedPropertySheetPage.getWidgetFactory());
   }
@@ -80,7 +80,7 @@
    */
   public void createControls(Composite parent, TabbedPropertySheetWidgetFactory aFactory)
   {
-        this.factory = aFactory;
+		this.factory = aFactory;
     GC gc = new GC(parent);
     Point extent = gc.textExtent("  ...  ");
     rightMarginSpace = extent.x;
@@ -92,10 +92,10 @@
    */
   public void setInput(IWorkbenchPart part, ISelection selection)
   {
-        Assert.isTrue(selection instanceof IStructuredSelection);
-        this.part = part;
-        this.selection = selection;
-        Object input = ((IStructuredSelection)selection).getFirstElement();
+		Assert.isTrue(selection instanceof IStructuredSelection);
+		this.part = part;
+		this.selection = selection;
+		Object input = ((IStructuredSelection)selection).getFirstElement();
     this.input = input;
     
     if (input instanceof XSDConcreteComponent)
@@ -115,7 +115,7 @@
     statusLine = getStatusLine();
     clearErrorMessage();
 
-//      refresh();
+//		refresh();
   }
 
   /* (non-Javadoc)
@@ -176,20 +176,20 @@
     return xsdSchema;
   }
   
-    /**
-     * Get the widget factory.
-     * @return the widget factory.
-     */
-    public TabbedPropertySheetWidgetFactory getWidgetFactory() {
-        return factory;
-    }
+	/**
+	 * Get the widget factory.
+	 * @return the widget factory.
+	 */
+	public TabbedPropertySheetWidgetFactory getWidgetFactory() {
+		return factory;
+	}
 
-    public void propertyChange(PropertyChangeEvent event)
-    {
+	public void propertyChange(PropertyChangeEvent event)
+	{
     refresh();
-    }
+	}
 
-    
+	
   public void doWidgetDefaultSelected(SelectionEvent e)
   {}
   
@@ -409,9 +409,10 @@
     return true;
   }
 
+  // TODO
   protected boolean validatePrefix(String prefix)
   {
-    return true;//XMLChar.isValidNCName(prefix);
+    return true;
   }
 
   
@@ -491,4 +492,4 @@
     return standardLabelWidth;
   }
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NameSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NameSection.java
index 28c9abf..95ebbe3 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NameSection.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NameSection.java
@@ -20,11 +20,20 @@
 import org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertyConstants;
 import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
 import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalAttributeGroupRenamer;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalAttributeRenamer;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalElementRenamer;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalGroupRenamer;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalSimpleOrComplexTypeRenamer;
 import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
 import org.eclipse.xsd.XSDAttributeDeclaration;
+import org.eclipse.xsd.XSDAttributeGroupDefinition;
 import org.eclipse.xsd.XSDAttributeUse;
 import org.eclipse.xsd.XSDComplexTypeDefinition;
 import org.eclipse.xsd.XSDComponent;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDModelGroupDefinition;
 import org.eclipse.xsd.XSDNamedComponent;
 import org.eclipse.xsd.XSDSimpleTypeDefinition;
 import org.eclipse.xsd.XSDTypeDefinition;
@@ -225,8 +234,6 @@
 
 	private void doReferentialIntegrityCheck(XSDComponent xsdComponent, String newValue)
 	{
-    }
-/*    
     Element element = xsdComponent.getElement();
     if (XSDDOMHelper.inputEquals(element, XSDConstants.ELEMENT_ELEMENT_TAG, false))
     {
@@ -394,7 +401,7 @@
     
 
 
-	}*/
+	}
 
   boolean checkForAnonymousType(Element element)
   {
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceAndSchemaLocationSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceAndSchemaLocationSection.java
index 7d4d06f..91a1924 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceAndSchemaLocationSection.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceAndSchemaLocationSection.java
@@ -11,6 +11,7 @@
 package org.eclipse.wst.xsd.ui.internal.properties.section;
 
 import java.util.Map;
+
 import org.eclipse.core.resources.IFile;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.ViewerFilter;
@@ -33,7 +34,7 @@
 import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
 import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
 import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.XSDExternalFileCleanup;
+import org.eclipse.wst.xsd.ui.internal.refactor.delete.XSDExternalFileCleanup;
 import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
 import org.eclipse.wst.xsd.ui.internal.util.XSDSchemaHelper;
 import org.eclipse.wst.xsd.ui.internal.wizards.XSDSelectIncludeFileWizard;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/RefactoringMessages.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/RefactoringMessages.java
new file mode 100644
index 0000000..7b56d8d
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/RefactoringMessages.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor;
+
+import java.text.MessageFormat;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+public class RefactoringMessages {
+
+	private static final String RESOURCE_BUNDLE= "org.eclipse.wst.xsd.ui.internal.refactor.messages";//$NON-NLS-1$
+
+	private static ResourceBundle fgResourceBundle= ResourceBundle.getBundle(RESOURCE_BUNDLE);
+
+	private RefactoringMessages() {
+	}
+
+	public static String getString(String key) {
+		try {
+			return fgResourceBundle.getString(key);
+		} catch (MissingResourceException e) {
+			return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$
+		}
+	}
+	
+	public static String[] getStrings(String keys[]) {
+		String[] result= new String[keys.length];
+		for (int i= 0; i < keys.length; i++) {
+			result[i]= getString(keys[i]);
+		}
+		return result;
+	}
+	
+	public static String getFormattedString(String key, Object arg) {
+		return getFormattedString(key, new Object[] { arg });
+	}
+	
+	public static String getFormattedString(String key, Object[] args) {
+		return MessageFormat.format(getString(key), args);	
+	}	
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/XSDVisitor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/XSDVisitor.java
new file mode 100644
index 0000000..24bda3f
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/XSDVisitor.java
@@ -0,0 +1,217 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor;
+
+import java.util.Iterator;
+
+import org.eclipse.xsd.XSDAttributeDeclaration;
+import org.eclipse.xsd.XSDAttributeGroupContent;
+import org.eclipse.xsd.XSDAttributeGroupDefinition;
+import org.eclipse.xsd.XSDAttributeUse;
+import org.eclipse.xsd.XSDComplexTypeContent;
+import org.eclipse.xsd.XSDComplexTypeDefinition;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDIdentityConstraintDefinition;
+import org.eclipse.xsd.XSDModelGroup;
+import org.eclipse.xsd.XSDModelGroupDefinition;
+import org.eclipse.xsd.XSDNotationDeclaration;
+import org.eclipse.xsd.XSDParticle;
+import org.eclipse.xsd.XSDParticleContent;
+import org.eclipse.xsd.XSDSchema;
+import org.eclipse.xsd.XSDSimpleTypeDefinition;
+import org.eclipse.xsd.XSDTypeDefinition;
+import org.eclipse.xsd.XSDWildcard;
+
+public class XSDVisitor
+{
+  public XSDVisitor()
+  {
+  }
+  
+  protected XSDSchema schema;
+  
+  public void visitSchema(XSDSchema schema)
+  {
+    this.schema = schema;
+    for (Iterator iterator = schema.getAttributeDeclarations().iterator(); iterator.hasNext();)
+    {
+      XSDAttributeDeclaration attr = (XSDAttributeDeclaration) iterator.next();
+      visitAttributeDeclaration(attr);
+    }
+    for (Iterator iterator = schema.getTypeDefinitions().iterator(); iterator.hasNext();)
+    {
+      XSDTypeDefinition type = (XSDTypeDefinition) iterator.next();
+      visitTypeDefinition(type);
+    }
+    for (Iterator iterator = schema.getElementDeclarations().iterator(); iterator.hasNext();)
+    {
+      XSDElementDeclaration element = (XSDElementDeclaration) iterator.next();
+      visitElementDeclaration(element);
+    }
+    for (Iterator iterator = schema.getIdentityConstraintDefinitions().iterator(); iterator.hasNext();)
+    {
+      XSDIdentityConstraintDefinition identityConstraint = (XSDIdentityConstraintDefinition) iterator.next();
+      visitIdentityConstraintDefinition(identityConstraint);
+    }
+    for (Iterator iterator = schema.getModelGroupDefinitions().iterator(); iterator.hasNext();)
+    {
+      XSDModelGroupDefinition modelGroup = (XSDModelGroupDefinition) iterator.next();
+      visitModelGroupDefinition(modelGroup);
+    }
+    for (Iterator iterator = schema.getAttributeGroupDefinitions().iterator(); iterator.hasNext();)
+    {
+      XSDAttributeGroupDefinition attributeGroup = (XSDAttributeGroupDefinition) iterator.next();
+      visitAttributeGroupDefinition(attributeGroup);
+    }
+    for (Iterator iterator = schema.getNotationDeclarations().iterator(); iterator.hasNext();)
+    {
+      XSDNotationDeclaration element = (XSDNotationDeclaration) iterator.next();
+      visitNotationDeclaration(element);
+    }
+    
+  }
+  
+  public void visitAttributeDeclaration(XSDAttributeDeclaration attr)
+  {
+  }
+  
+  public void visitTypeDefinition(XSDTypeDefinition type)
+  {
+    if (type instanceof XSDSimpleTypeDefinition)
+    {
+      visitSimpleTypeDefinition((XSDSimpleTypeDefinition)type);
+    }
+    else if (type instanceof XSDComplexTypeDefinition)
+    {
+      visitComplexTypeDefinition((XSDComplexTypeDefinition)type);
+    }
+  }
+  
+  public void visitElementDeclaration(XSDElementDeclaration element)
+  {
+    if (element.isElementDeclarationReference())
+    {
+    }
+    else if (element.getAnonymousTypeDefinition() != null)
+    {
+      visitTypeDefinition(element.getAnonymousTypeDefinition());
+    }
+  }
+  
+  public void visitIdentityConstraintDefinition(XSDIdentityConstraintDefinition identityConstraint)
+  {
+  }
+  
+  public void visitModelGroupDefinition(XSDModelGroupDefinition modelGroupDef)
+  {
+    if (!modelGroupDef.isModelGroupDefinitionReference())
+    {
+      if (modelGroupDef.getModelGroup() != null)
+      {
+        visitModelGroup(modelGroupDef.getModelGroup());
+      }
+    }
+  }
+  
+  public void visitAttributeGroupDefinition(XSDAttributeGroupDefinition attributeGroup)
+  {
+    if (attributeGroup.getAttributeUses() != null)
+    {
+      for (Iterator iter = attributeGroup.getAttributeUses().iterator(); iter.hasNext(); )
+      {
+        XSDAttributeUse attrUse = (XSDAttributeUse)iter.next();
+        visitAttributeDeclaration(attrUse.getContent());
+      }
+    }
+  }
+  
+  public void visitNotationDeclaration(XSDNotationDeclaration notation)
+  {
+  }
+  
+  public void visitSimpleTypeDefinition(XSDSimpleTypeDefinition type)
+  {
+  }
+  
+  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
+  {
+    if (type.getContentType() != null)
+    {
+      XSDComplexTypeContent complexContent = (XSDComplexTypeContent) type.getContentType();
+      if (complexContent instanceof XSDSimpleTypeDefinition)
+      {
+        visitSimpleTypeDefinition((XSDSimpleTypeDefinition)complexContent);
+      }
+      else if (complexContent instanceof XSDParticle)
+      {
+        visitParticle((XSDParticle) complexContent);
+      }
+    }
+    
+    if (type.getAttributeContents() != null)
+    {
+      for (Iterator iter = type.getAttributeContents().iterator(); iter.hasNext(); )
+      {
+        XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent)iter.next();
+        if (attrGroupContent instanceof XSDAttributeUse)
+        {
+          XSDAttributeUse attrUse = (XSDAttributeUse)attrGroupContent;
+          visitAttributeDeclaration(attrUse.getContent());
+        }
+        else if (attrGroupContent instanceof XSDAttributeGroupDefinition)
+        {
+          visitAttributeGroupDefinition((XSDAttributeGroupDefinition)attrGroupContent);
+        }
+      }
+    }
+  }
+  
+  public void visitParticle(XSDParticle particle)
+  {
+    visitParticleContent(particle.getContent());
+  }
+  
+  public void visitParticleContent(XSDParticleContent particleContent)
+  {
+    if (particleContent instanceof XSDModelGroupDefinition)
+    {
+      visitModelGroupDefinition((XSDModelGroupDefinition) particleContent);
+    }
+    else if (particleContent instanceof XSDModelGroup)
+    {
+      visitModelGroup((XSDModelGroup)particleContent);
+    }
+    else if (particleContent instanceof XSDElementDeclaration)
+    {
+      visitElementDeclaration((XSDElementDeclaration)particleContent);
+    }
+    else if (particleContent instanceof XSDWildcard)
+    {
+      visitWildcard((XSDWildcard)particleContent);
+    }
+  }
+  
+  public void visitModelGroup(XSDModelGroup modelGroup)
+  {
+    if (modelGroup.getContents() != null)
+    {
+      for (Iterator iterator = modelGroup.getContents().iterator(); iterator.hasNext();)
+      {
+        XSDParticle particle = (XSDParticle) iterator.next();
+        visitParticle(particle);
+      }
+    }
+  }
+  
+  public void visitWildcard(XSDWildcard wildcard)
+  {
+  }
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/MakeAnonymousTypeGlobalAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/MakeAnonymousTypeGlobalAction.java
new file mode 100644
index 0000000..6404b3d
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/MakeAnonymousTypeGlobalAction.java
@@ -0,0 +1,162 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation 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:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.actions;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.ltk.core.refactoring.participants.RenameRefactoring;
+import org.eclipse.ltk.ui.refactoring.RefactoringWizard;
+import org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation;
+import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
+import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.commands.MakeAnonymousTypeGlobalCommand;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.RenameRefactoringWizard;
+import org.eclipse.wst.xsd.ui.internal.refactor.structure.MakeTypeGlobalProcessor;
+import org.eclipse.xsd.XSDAttributeDeclaration;
+import org.eclipse.xsd.XSDComplexTypeDefinition;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDSchema;
+import org.eclipse.xsd.XSDSimpleTypeDefinition;
+import org.eclipse.xsd.XSDTypeDefinition;
+import org.w3c.dom.Node;
+
+public class MakeAnonymousTypeGlobalAction extends SelectionDispatchAction {
+
+	private String fParentName;
+	private boolean isComplexType = true;
+	private XSDTypeDefinition fSelectedComponent;
+	
+	public MakeAnonymousTypeGlobalAction(ISelectionProvider selectionProvider, XSDSchema schema) {
+		super(selectionProvider);
+		setText(XSDEditorPlugin.getXSDString("_UI_ACTION_MAKE_ANONYMOUS_TYPE_GLOBAL")); //$NON-NLS-1$
+		setSchema(schema);
+	}
+	
+	public boolean canRun() {
+
+		return fSelectedComponent != null;
+	}
+	
+
+	private String getNewDefaultName(){
+		if(fParentName != null && !"".equals(fParentName)){
+			if(isComplexType){
+				return fParentName + "ComplexType";
+			}
+			else{
+				return fParentName + "SimpleType";
+			}
+		}
+		else{
+			if(isComplexType){
+				return "NewComplexType";
+			}
+			else{
+				return "NewSimpleType";
+			}
+		}
+		
+	}
+	private boolean canEnable(XSDConcreteComponent xsdComponent){
+		if (xsdComponent instanceof XSDComplexTypeDefinition) {
+			fSelectedComponent = (XSDComplexTypeDefinition)xsdComponent;
+			isComplexType = true;
+			XSDComplexTypeDefinition typeDef = (XSDComplexTypeDefinition) xsdComponent;
+			XSDConcreteComponent parent = typeDef.getContainer();
+			if(parent instanceof XSDElementDeclaration){
+				fParentName = ((XSDElementDeclaration)parent).getName();
+				return true;
+			}
+		} 
+		else if (xsdComponent instanceof XSDSimpleTypeDefinition){
+			fSelectedComponent = (XSDSimpleTypeDefinition)xsdComponent;
+			isComplexType = false;
+			XSDSimpleTypeDefinition typeDef = (XSDSimpleTypeDefinition) xsdComponent;
+			XSDConcreteComponent parent = typeDef.getContainer();
+			if(parent instanceof XSDElementDeclaration){
+				fParentName = ((XSDElementDeclaration)parent).getName();
+				return true;
+			}
+			else if(parent instanceof XSDAttributeDeclaration){
+				fParentName = ((XSDAttributeDeclaration)parent).getName();
+				return true;
+			}
+			
+		}
+		return false;
+	}
+
+	protected boolean canEnable(Object selectedObject) {
+		
+		if (selectedObject instanceof XSDConcreteComponent) {
+			return canEnable((XSDConcreteComponent)selectedObject);
+		}
+		else if (selectedObject instanceof Node) {
+			Node node = (Node) selectedObject;
+			XSDSchema xsdSchema = getSchema();
+			if (xsdSchema != null)
+			{
+			  XSDConcreteComponent concreteComponent = xsdSchema.getCorrespondingComponent(node);
+		  	return canEnable(concreteComponent);
+			}
+		}
+		return false;
+		
+	}
+
+	public void run1() {
+		
+		if(fSelectedComponent == null){
+			return;
+		}
+		
+		if(fSelectedComponent.getSchema() == null){
+			getSchema().updateElement(true);
+		}
+		MakeTypeGlobalProcessor processor = new MakeTypeGlobalProcessor(fSelectedComponent, getNewDefaultName());
+		RenameRefactoring refactoring = new RenameRefactoring(processor);
+		try {
+			RefactoringWizard wizard = new RenameRefactoringWizard(
+					refactoring,
+					RefactoringMessages.getString("RenameComponentWizard.defaultPageTitle"), //$NON-NLS-1$ TODO: provide correct strings
+					RefactoringMessages.getString("RenameComponentWizard.inputPage.description"), //$NON-NLS-1$
+					null);
+			RefactoringWizardOpenOperation op= new RefactoringWizardOpenOperation(wizard);
+			op.run(XSDEditorPlugin.getShell(), wizard.getDefaultPageTitle());
+			op.getInitialConditionCheckingStatus();
+			//triggerBuild();
+		} catch (InterruptedException e) {
+			// do nothing. User action got cancelled
+		}
+		
+	}
+	
+	public void run(){
+		if(fSelectedComponent == null){
+			return;
+		}
+		
+		if(fSelectedComponent.getSchema() == null){
+			getSchema().updateElement(true);
+		}
+		DocumentImpl doc = (DocumentImpl) fSelectedComponent.getElement().getOwnerDocument();
+		doc.getModel().beginRecording(
+						this,
+						XSDEditorPlugin
+								.getXSDString("_UI_ACTION_MAKE_ANONYMOUS_TYPE_GLOBAL"));
+		MakeAnonymousTypeGlobalCommand command = new MakeAnonymousTypeGlobalCommand(
+				fSelectedComponent, getNewDefaultName());
+		command.run();
+		doc.getModel().endRecording(this);
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/MakeLocalElementGlobalAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/MakeLocalElementGlobalAction.java
new file mode 100644
index 0000000..ced71d7
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/MakeLocalElementGlobalAction.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation 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:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.actions;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
+import org.eclipse.wst.xsd.ui.internal.commands.MakeLocalElementGlobalCommand;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDSchema;
+import org.w3c.dom.Node;
+
+public class MakeLocalElementGlobalAction extends SelectionDispatchAction {
+
+	XSDElementDeclaration fSelectedComponent;
+
+	public MakeLocalElementGlobalAction(ISelectionProvider selectionProvider, XSDSchema schema) {
+		super(selectionProvider);
+		setText(RefactoringMessages.getString("MakeLocalElementGlobalAction.text")); //$NON-NLS-1$
+		setSchema(schema);
+	}
+	
+	public boolean canRun() {
+
+		return fSelectedComponent != null;
+	}
+
+	protected boolean canEnable(XSDConcreteComponent selectedObject) {
+
+		fSelectedComponent = null;
+		if (selectedObject instanceof XSDElementDeclaration) {
+			XSDElementDeclaration element = (XSDElementDeclaration) selectedObject;
+			if (!element.isElementDeclarationReference() && !element.isGlobal()) {
+				fSelectedComponent = element;
+			}
+		} 
+		return canRun();
+	}
+	
+	
+	protected boolean canEnable(Object selectedObject) {
+		
+		if (selectedObject instanceof XSDConcreteComponent) {
+			return canEnable((XSDConcreteComponent)selectedObject);
+		}
+		else if (selectedObject instanceof Node) {
+			Node node = (Node) selectedObject;
+			XSDSchema xsdSchema = getSchema();
+			if (xsdSchema != null)
+			{
+			  XSDConcreteComponent concreteComponent = xsdSchema.getCorrespondingComponent(node);
+		  	return canEnable(concreteComponent);
+			}
+		}
+		return false;
+		
+	}
+
+
+	public void run() {
+		DocumentImpl doc = (DocumentImpl) fSelectedComponent.getElement()
+				.getOwnerDocument();
+		doc.getModel().beginRecording(this, getText());
+		MakeLocalElementGlobalCommand command = new MakeLocalElementGlobalCommand(
+				fSelectedComponent);
+		command.run();
+		doc.getModel().endRecording(this);
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RefactorActionGroup.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RefactorActionGroup.java
new file mode 100644
index 0000000..f260bb4
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RefactorActionGroup.java
@@ -0,0 +1,261 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.actions;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.util.Assert;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.swt.events.MenuAdapter;
+import org.eclipse.swt.events.MenuEvent;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.actions.ActionGroup;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
+import org.eclipse.xsd.XSDSchema;
+
+/**
+ * Action group that adds refactor actions (for example 'Rename', 'Move') to a
+ * context menu and the global menu bar.
+ * 
+ */
+public class RefactorActionGroup extends ActionGroup {
+
+	public static final String MENU_ID = "org.eclipse.wst.xsd.ui.refactoring.menu"; //$NON-NLS-1$
+
+	public static final String GROUP_REORG = "reorgGroup"; //$NON-NLS-1$
+
+	public static final String RENAME_ELEMENT = "org.eclipse.wst.xsd.ui.refactor.rename.element"; //$NON-NLS-1$
+
+	public static final String MAKE_ELEMENT_GLOBAL = "org.eclipse.wst.xsd.ui.refactor.makeElementGlobal"; //$NON-NLS-1$
+	
+	public static final String MAKE_TYPE_GLOBAL = "org.eclipse.wst.xsd.ui.refactor.makeTypeGlobal"; //$NON-NLS-1$
+
+	public static final String RENAME = "org.eclipse.wst.xsd.ui.refactoring.actions.Rename"; //$NON-NLS-1$
+
+	/**
+	 * Pop-up menu: name of group for reorganize actions (value
+	 * <code>"group.reorganize"</code>).
+	 */
+	public static final String GROUP_REORGANIZE = IWorkbenchActionConstants.GROUP_REORGANIZE;
+
+	/**
+	 * 
+	 * @deprecated
+	 * 
+	 */
+	private ISelectionProvider fSelectionProvider;
+
+	private String fGroupName = GROUP_REORGANIZE;
+
+	private SelectionDispatchAction fRenameAction;
+
+	private SelectionDispatchAction fMakeLocalElementGlobal;
+	
+	private SelectionDispatchAction fMakeLocalTypeGlobal;
+
+	private List fEditorActions;
+
+	private IMenuManager fRefactorSubmenu;
+
+	private static class NoActionAvailable extends Action {
+		public NoActionAvailable() {
+			setEnabled(true);
+			setText(RefactoringMessages
+					.getString("RefactorActionGroup.no_refactoring_available")); //$NON-NLS-1$
+		}
+	}
+
+	private Action fNoActionAvailable = new NoActionAvailable();
+	
+	public RefactorActionGroup(ISelectionProvider selectionProvider,
+			XSDSchema schema, String groupName) {
+		this(selectionProvider, schema);
+		fGroupName = groupName;
+	}
+	
+	public RefactorActionGroup(ISelectionProvider selectionProvider,
+			XSDSchema schema) {
+		fSelectionProvider = selectionProvider;
+		fEditorActions = new ArrayList();
+		fRenameAction = new RenameAction(selectionProvider, schema);
+		fRenameAction.setActionDefinitionId(RENAME_ELEMENT);
+		fEditorActions.add(fRenameAction);
+
+		fMakeLocalElementGlobal = new MakeLocalElementGlobalAction(
+				selectionProvider, schema);
+		fMakeLocalElementGlobal.setActionDefinitionId(MAKE_ELEMENT_GLOBAL);
+		fEditorActions.add(fMakeLocalElementGlobal);
+		
+		fMakeLocalTypeGlobal = new MakeAnonymousTypeGlobalAction(
+				selectionProvider, schema);
+		fMakeLocalTypeGlobal.setActionDefinitionId(MAKE_TYPE_GLOBAL);
+		fEditorActions.add(fMakeLocalTypeGlobal);
+
+		initAction(fRenameAction, fSelectionProvider);
+		initAction(fMakeLocalElementGlobal, fSelectionProvider);
+		initAction(fMakeLocalTypeGlobal, fSelectionProvider);
+	}
+
+	private static void initAction(SelectionDispatchAction action,
+			ISelectionProvider provider) {
+
+		Assert.isNotNull(provider);
+		Assert.isNotNull(action);
+		action.update(provider.getSelection());
+		provider.addSelectionChangedListener(action);
+	}
+
+	/*
+	 * (non-Javadoc) Method declared in ActionGroup
+	 */
+	public void fillActionBars(IActionBars actionBars) {
+		super.fillActionBars(actionBars);
+		actionBars.setGlobalActionHandler(RENAME, fRenameAction);
+		retargetFileMenuActions(actionBars);
+	}
+
+	/**
+	 * Retargets the File actions with the corresponding refactoring actions.
+	 * 
+	 * @param actionBars
+	 *            the action bar to register the move and rename action with
+	 */
+	public void retargetFileMenuActions(IActionBars actionBars) {
+		actionBars.setGlobalActionHandler(ActionFactory.RENAME.getId(),
+				fRenameAction);
+	}
+
+	/*
+	 * (non-Javadoc) Method declared in ActionGroup
+	 */
+	public void fillContextMenu(IMenuManager menu) {
+		super.fillContextMenu(menu);
+		addRefactorSubmenu(menu);
+	}
+
+	/*
+	 * @see ActionGroup#dispose()
+	 */
+	public void dispose() {
+		disposeAction(fRenameAction, fSelectionProvider);
+		disposeAction(fMakeLocalElementGlobal, fSelectionProvider);
+		super.dispose();
+	}
+
+	private void disposeAction(ISelectionChangedListener action,
+			ISelectionProvider provider) {
+		if (action != null)
+			provider.removeSelectionChangedListener(action);
+	}
+
+	private void addRefactorSubmenu(IMenuManager menu) {
+
+		String menuText = RefactoringMessages.getString("RefactorMenu.label"); //$NON-NLS-1$
+
+		fRefactorSubmenu = new MenuManager(menuText, MENU_ID);
+		//if (fEditor != null) {
+			fRefactorSubmenu.addMenuListener(new IMenuListener() {
+				public void menuAboutToShow(IMenuManager manager) {
+					refactorMenuShown(manager);
+				}
+			});
+			fRefactorSubmenu.add(fNoActionAvailable);
+			if (menu.find(fRefactorSubmenu.getId()) == null) {
+				if (menu.find(fGroupName) == null) {
+					menu.add(fRefactorSubmenu);
+				} else {
+					menu.appendToGroup(fGroupName, fRefactorSubmenu);
+				}
+			}
+//		} else {
+//			if (fillRefactorMenu(fRefactorSubmenu) > 0)
+//				menu.appendToGroup(fGroupName, fRefactorSubmenu);
+//		}
+	}
+
+	private int fillRefactorMenu(IMenuManager refactorSubmenu) {
+		int added = 0;
+		refactorSubmenu.add(new Separator(GROUP_REORG));
+		for (Iterator iter = fEditorActions.iterator(); iter.hasNext();) {
+			Action action = (Action) iter.next();
+			added += addAction(refactorSubmenu, action);
+		}
+		return added;
+	}
+
+	private int addAction(IMenuManager menu, IAction action) {
+		if (action != null && action.isEnabled()) {
+			menu.add(action);
+			return 1;
+		}
+		return 0;
+	}
+
+	public int addAction(IAction action) {
+		if (action != null && action.isEnabled()) {
+			fEditorActions.add(action);
+			return 1;
+		}
+		return 0;
+	}
+
+	private void refactorMenuShown(final IMenuManager refactorSubmenu) {
+		// we know that we have an MenuManager since we created it in
+		// addRefactorSubmenu.
+		Menu menu = ((MenuManager) refactorSubmenu).getMenu();
+		menu.addMenuListener(new MenuAdapter() {
+			public void menuHidden(MenuEvent e) {
+				refactorMenuHidden(refactorSubmenu);
+			}
+		});
+//		ISelection selection = (ISelection) fEditor.getSelectionManager()
+//				.getSelection();
+		ISelection selection = fSelectionProvider.getSelection();
+		for (Iterator iter = fEditorActions.iterator(); iter.hasNext();) {
+			Action action = (Action) iter.next();
+			if (action instanceof SelectionDispatchAction) {
+				SelectionDispatchAction selectionAction = (SelectionDispatchAction) action;
+				selectionAction.update(selection);
+			}
+		}
+		refactorSubmenu.removeAll();
+		if (fillRefactorMenu(refactorSubmenu) == 0)
+			refactorSubmenu.add(fNoActionAvailable);
+	}
+
+	private void refactorMenuHidden(IMenuManager manager) {
+//		ISelection selection = (ISelection) fEditor.getSelectionManager()
+//				.getSelection();
+		ISelection selection = fSelectionProvider.getSelection();
+		for (Iterator iter = fEditorActions.iterator(); iter.hasNext();) {
+			Action action = (Action) iter.next();
+			if (action instanceof SelectionDispatchAction) {
+				SelectionDispatchAction selectionAction = (SelectionDispatchAction) action;
+				selectionAction.update(selection);
+			}
+
+		}
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameAction.java
new file mode 100644
index 0000000..c9c6178
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameAction.java
@@ -0,0 +1,104 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation 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:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.actions;
+
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
+import org.eclipse.xsd.XSDSchema;
+
+
+/**
+* Renames a XML Schema element or workbench resource.
+* <p>
+* Action is applicable to selections containing elements of type
+* <code></code> or <code>IResource</code>.
+* 
+* <p>
+* This class may be instantiated; it is not intended to be subclassed.
+* </p>
+
+*/
+public class RenameAction extends SelectionDispatchAction  {
+
+	private RenameComponentAction fRenameXSDElement;
+	private RenameResourceAction fRenameResource;
+	
+	
+	public RenameAction(ISelectionProvider selectionProvider, XSDSchema schema) {
+		super(selectionProvider);
+		setText(RefactoringMessages.getString("RenameAction.text")); //$NON-NLS-1$
+		fRenameXSDElement= new RenameComponentAction(selectionProvider, schema);
+		fRenameXSDElement.setText(getText());
+		fRenameResource= new RenameResourceAction(selectionProvider);
+		fRenameResource.setText(getText());
+		
+	}
+	
+	/*
+	 * @see ISelectionChangedListener#selectionChanged(SelectionChangedEvent)
+	 */
+	public void selectionChanged(SelectionChangedEvent event) {
+		fRenameXSDElement.selectionChanged(event);
+		if (fRenameResource != null)
+			fRenameResource.selectionChanged(event);
+		setEnabled(computeEnabledState());		
+	}
+
+	/*
+	 * @see SelectionDispatchAction#update(ISelection)
+	 */
+	public void update(ISelection selection) {
+		if(fRenameXSDElement != null){
+			fRenameXSDElement.update(selection);
+		}
+		if (fRenameResource != null)
+			fRenameResource.update(selection);
+		setEnabled(computeEnabledState());		
+	}
+	
+	private boolean computeEnabledState(){
+		if (fRenameResource != null) {
+			return fRenameXSDElement.isEnabled() || fRenameResource.isEnabled();
+		} else {
+			return fRenameXSDElement.isEnabled();
+		}
+	}
+	
+	public void run(IStructuredSelection selection) {
+		if (fRenameXSDElement.isEnabled())
+			fRenameXSDElement.run(selection);
+		if (fRenameResource != null && fRenameResource.isEnabled())
+			fRenameResource.run(selection);
+	}
+
+	public void run(ITextSelection selection) {
+		if (fRenameXSDElement.canRun())
+			fRenameXSDElement.run(selection);
+		else
+			MessageDialog.openInformation(XSDEditorPlugin.getShell(), RefactoringMessages.getString("RenameAction.rename"), RefactoringMessages.getString("RenameAction.unavailable"));  //$NON-NLS-1$ //$NON-NLS-2$
+	}
+	public void run(ISelection selection) {
+	    if(selection == null){
+	    	super.run();
+	    }
+	    else{
+	    	super.run(selection);
+	    }
+		
+	}
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameComponentAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameComponentAction.java
new file mode 100644
index 0000000..01527c0
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameComponentAction.java
@@ -0,0 +1,139 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation 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:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.actions;
+
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.ltk.core.refactoring.participants.RenameRefactoring;
+import org.eclipse.ltk.ui.refactoring.RefactoringWizard;
+import org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation;
+import org.eclipse.ui.actions.GlobalBuildAction;
+import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.RenameComponentProcessor;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.RenameRefactoringWizard;
+import org.eclipse.xsd.XSDAttributeDeclaration;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDNamedComponent;
+import org.eclipse.xsd.XSDSchema;
+import org.eclipse.xsd.XSDTypeDefinition;
+import org.w3c.dom.Node;
+
+public class RenameComponentAction extends SelectionDispatchAction {
+
+	private XSDNamedComponent fSelectedComponent;
+
+	public RenameComponentAction(ISelectionProvider selectionProvider,
+			XSDSchema schema) {
+		super(selectionProvider);
+		setSchema(schema);
+	}
+
+	protected boolean canEnable(XSDConcreteComponent selectedObject) {
+
+		fSelectedComponent = null;
+		if (selectedObject instanceof XSDNamedComponent) {
+			fSelectedComponent = (XSDNamedComponent) selectedObject;
+
+			// if it's element reference, then this action is not appropriate
+			if (fSelectedComponent instanceof XSDElementDeclaration) {
+				XSDElementDeclaration element = (XSDElementDeclaration) fSelectedComponent;
+				if (element.isElementDeclarationReference()) {
+					fSelectedComponent = null;
+				}
+			}
+			if(fSelectedComponent instanceof XSDTypeDefinition){
+				XSDTypeDefinition type = (XSDTypeDefinition) fSelectedComponent;
+				XSDConcreteComponent parent = type.getContainer();
+				if (parent instanceof XSDElementDeclaration) {
+					XSDElementDeclaration element = (XSDElementDeclaration) parent;
+					if(element.getAnonymousTypeDefinition().equals(type)){
+						fSelectedComponent = null;
+					}
+				}
+				else if(parent instanceof XSDAttributeDeclaration) {
+					XSDAttributeDeclaration element = (XSDAttributeDeclaration) parent;
+					if(element.getAnonymousTypeDefinition().equals(type)){
+						fSelectedComponent = null;
+					}
+				}
+			}
+		}
+
+		return canRun();
+	}
+
+	protected boolean canEnable(Object selectedObject) {
+
+		if (selectedObject instanceof XSDConcreteComponent) {
+			return canEnable((XSDConcreteComponent) selectedObject);
+		} else if (selectedObject instanceof Node) {
+			Node node = (Node) selectedObject;
+			if (getSchema() != null) {
+				XSDConcreteComponent concreteComponent = getSchema()
+						.getCorrespondingComponent(node);
+				return canEnable(concreteComponent);
+			}
+		}
+		return false;
+
+	}
+
+	public boolean canRun() {
+
+		return fSelectedComponent != null;
+	}
+
+	public void run(ISelection selection) {
+		if (fSelectedComponent.getName() == null) {
+			fSelectedComponent.setName(new String());
+		}
+		if (fSelectedComponent.getSchema() == null) {
+			if (getSchema() != null) {
+				getSchema().updateElement(true);
+			}
+
+		}
+		RenameComponentProcessor processor = new RenameComponentProcessor(
+				fSelectedComponent, fSelectedComponent.getName());
+		RenameRefactoring refactoring = new RenameRefactoring(processor);
+		try {
+			RefactoringWizard wizard = new RenameRefactoringWizard(
+					refactoring,
+					RefactoringMessages
+							.getString("RenameComponentWizard.defaultPageTitle"), //$NON-NLS-1$ TODO: provide correct strings
+					RefactoringMessages
+							.getString("RenameComponentWizard.inputPage.description"), //$NON-NLS-1$
+					null);
+			RefactoringWizardOpenOperation op = new RefactoringWizardOpenOperation(
+					wizard);
+			op.run(XSDEditorPlugin.getShell(), wizard
+					.getDefaultPageTitle());
+			op.getInitialConditionCheckingStatus();
+			triggerBuild();
+		} catch (InterruptedException e) {
+			// do nothing. User action got cancelled
+		}
+
+	}
+
+	public static void triggerBuild() {
+		if (ResourcesPlugin.getWorkspace().getDescription().isAutoBuilding()) {
+			new GlobalBuildAction(XSDEditorPlugin.getPlugin().getWorkbench()
+					.getActiveWorkbenchWindow(),
+					IncrementalProjectBuilder.INCREMENTAL_BUILD).run();
+		}
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceAction.java
new file mode 100644
index 0000000..cfa535b
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceAction.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation 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:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.actions;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ltk.core.refactoring.participants.RenameRefactoring;
+import org.eclipse.ltk.ui.refactoring.RefactoringWizard;
+import org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation;
+import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.RenameRefactoringWizard;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.RenameResourceProcessor;
+
+
+
+public class RenameResourceAction extends SelectionDispatchAction {
+
+
+	public RenameResourceAction(ISelectionProvider selectionProvider) {
+		super(selectionProvider);
+	}
+	
+	public void selectionChanged(IStructuredSelection selection) {
+		IResource element= getResource(selection);
+		if (element == null) {
+			setEnabled(false);
+		} else {
+			RenameResourceProcessor processor= new RenameResourceProcessor(element);
+			setEnabled(processor.isApplicable());
+			
+		}
+	}
+
+	public void run(IStructuredSelection selection) {
+		IResource resource = getResource(selection);
+		RenameResourceProcessor processor= new RenameResourceProcessor(resource);
+
+			if(!processor.isApplicable())
+				return;
+			RenameRefactoring refactoring= new RenameRefactoring(processor);
+			try {
+				RefactoringWizard wizard = new RenameRefactoringWizard(
+						refactoring,
+						RefactoringMessages.getString("RenameComponentWizard.defaultPageTitle"), //$NON-NLS-1$ TODO: provide correct strings
+						RefactoringMessages.getString("RenameComponentWizard.inputPage.description"), //$NON-NLS-1$
+						null);
+				RefactoringWizardOpenOperation op= new RefactoringWizardOpenOperation(wizard);
+				op.run(XSDEditorPlugin.getShell(), wizard.getDefaultPageTitle());
+				op.getInitialConditionCheckingStatus();
+			} catch (InterruptedException e) {
+				// do nothing. User action got cancelled
+			}
+			
+	}
+	
+	private static IResource getResource(IStructuredSelection selection) {
+		if (selection.size() != 1)
+			return null;
+		Object first= selection.getFirstElement();
+		if (! (first instanceof IResource))
+			return null;
+		return (IResource)first;
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceActionDelegate.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceActionDelegate.java
new file mode 100644
index 0000000..f008e13
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceActionDelegate.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation 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:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.actions;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+
+/**
+ * @author ebelisar@ca.ibm.com
+ */
+public class RenameResourceActionDelegate implements IObjectActionDelegate {
+	
+	private ISelection fCurrentSelection;
+
+	private IWorkbenchPart fPart;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction, org.eclipse.ui.IWorkbenchPart)
+	 */
+	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+		fPart = targetPart;
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+	 */
+	public void run(IAction action) {
+		if (fCurrentSelection instanceof IStructuredSelection) {
+			IStructuredSelection structuredSelection= (IStructuredSelection) fCurrentSelection;
+			Object first= structuredSelection.getFirstElement();
+			if (first instanceof IFile) {
+				RenameResourceAction renameAction = new RenameResourceAction(fPart.getSite().getSelectionProvider());
+				renameAction.run(structuredSelection);
+			}
+		}
+
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
+	 */
+	public void selectionChanged(IAction action, ISelection selection) {
+		fCurrentSelection= selection;
+
+	}
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/SelectionDispatchAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/SelectionDispatchAction.java
new file mode 100644
index 0000000..abe853d
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/SelectionDispatchAction.java
@@ -0,0 +1,199 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation 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:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.actions;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.jface.util.Assert;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.xsd.XSDSchema;
+
+
+
+/**
+ * Action that dispatches the <code>IAction#run()</code> and the 
+ * <code>ISelectionChangedListener#selectionChanged</code> 
+ * according to the type of the selection. 
+ * 
+ * <ul>
+ * 	<li>if selection is of type <code>ITextSelection</code> then
+ * 	<code>run(ITextSelection)</code> and <code>selectionChanged(ITextSelection)</code>
+ * 	is called.</li> 
+ * 	<li>if selection is of type <code>IStructuredSelection</code> then
+ * 	<code>run(IStructuredSelection)</code> and <code>
+ * 	selectionChanged(IStructuredSelection)</code> is called.</li>
+ * 	<li>default is to call <code>run(ISelection)</code> and <code>
+ * 	selectionChanged(ISelection)</code>.</li>
+ * </ul>
+ * 
+ * <p>
+ * adapted from <code>org.eclipse.jdt.ui.actions.SelectionDispatchAction</code>
+ * </p>
+ *   
+ * 
+ */
+public abstract class SelectionDispatchAction extends Action implements ISelectionChangedListener {
+	
+	private ISelectionProvider fSelectionProvider;
+	
+	private XSDSchema fSchema;
+	
+	protected SelectionDispatchAction(ISelectionProvider selectionProvider) {
+		Assert.isNotNull(selectionProvider);
+		fSelectionProvider = selectionProvider;
+	}
+
+	/**
+	 * Returns the selection provided by the site owning this action.
+	 * 
+	 * @return the site's selection
+	 */	
+	public ISelection getSelection() {
+		if (getSelectionProvider() != null)
+			return getSelectionProvider().getSelection();
+		else
+			return null;
+	}
+
+	/**
+	 * Returns the selection provider managed by the site owning this action.
+	 * 
+	 * @return the site's selection provider	
+	 */
+	public ISelectionProvider getSelectionProvider() {
+		return fSelectionProvider;
+	}
+
+	/**
+	 * Updates the action's enablement state according to the given selection. This
+	 * default implementation calls one of the <code>selectionChanged</code>
+	 * methods depending on the type of the passed selection.
+	 * 
+	 * @param selection the selection this action is working on
+	 */
+	public void update(ISelection selection) {
+		dispatchSelectionChanged(selection);
+	}
+
+	/**
+	 * Notifies this action that the given structured selection has changed. This default
+	 * implementation calls <code>selectionChanged(ISelection selection)</code>.
+	 * 
+	 * @param selection the new selection
+ 	 */
+	public void selectionChanged(IStructuredSelection selection) {
+		if (selection.size() == 1) {
+			Object object = selection.getFirstElement();
+			setEnabled(canEnable(object));
+		}
+		else{
+			setEnabled(false);
+		}
+	}
+	
+	protected boolean canEnable(Object selectedObject){
+		return false;
+	}
+
+	/**
+	 * Executes this actions with the given structured selection. This default implementation
+	 * calls <code>run(ISelection selection)</code>.
+	 */
+	public void run(IStructuredSelection selection) {
+		run((ISelection)selection);
+	}
+
+	
+	/**
+	 * Notifies this action that the given text selection has changed.  This default
+	 * implementation calls <code>selectionChanged(ISelection selection)</code>.
+	 * 
+	 * @param selection the new selection
+ 	 */
+	public void selectionChanged(ITextSelection selection) {
+		selectionChanged((ISelection)selection);
+	}
+	
+	/**
+	 * Executes this actions with the given text selection. This default implementation
+	 * calls <code>run(ISelection selection)</code>.
+	 */
+	public void run(ITextSelection selection) {
+		run((ISelection)selection);
+	}
+	
+	/**
+	 * Notifies this action that the given selection has changed.  This default
+	 * implementation sets the action's enablement state to <code>false</code>.
+	 * 
+	 * @param selection the new selection
+ 	 */
+	public void selectionChanged(ISelection selection) {
+		setEnabled(false);
+	}
+	
+	/**
+	 * Executes this actions with the given selection. This default implementation
+	 * does nothing.
+	 */
+	public void run(ISelection selection) {
+		System.out.println("SelectionDispatchAction.run");
+	}
+
+	/* (non-Javadoc)
+	 * Method declared on IAction.
+	 */
+	public void run() {
+		dispatchRun(getSelection());
+		
+	}
+	
+	/* (non-Javadoc)
+	 * Method declared on ISelectionChangedListener.
+	 */
+	public void selectionChanged(SelectionChangedEvent event) {
+		dispatchSelectionChanged(event.getSelection());
+	}
+
+	private void dispatchSelectionChanged(ISelection selection) {
+		if (selection instanceof IStructuredSelection) {
+			selectionChanged((IStructuredSelection)selection);
+		} else if (selection instanceof ITextSelection) {
+			selectionChanged((ITextSelection)selection);
+		} else {
+			selectionChanged(selection);
+		}
+	}
+
+	protected void dispatchRun(ISelection selection) {
+		if (selection instanceof IStructuredSelection) {
+			run((IStructuredSelection)selection);
+		}  else if (selection instanceof ITextSelection) {
+			run((ITextSelection)selection);
+		} else {
+			run(selection);
+		}
+	}
+
+	public XSDSchema getSchema() {
+		return fSchema;
+	}
+
+	public void setSchema(XSDSchema schema) {
+		fSchema = schema;
+	}
+	
+	
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/BaseCleanup.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/BaseCleanup.java
new file mode 100644
index 0000000..f45a1e2
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/BaseCleanup.java
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.delete;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor;
+import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDNamedComponent;
+import org.eclipse.xsd.XSDSchema;
+import org.w3c.dom.Element;
+
+public abstract class BaseCleanup extends XSDVisitor
+{
+  /**
+   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitSchema(XSDSchema)
+   */
+  public void visitSchema(XSDSchema schema)
+  {
+    super.visitSchema(schema);
+    
+    // now remove all children that were queued up for removal
+    
+    for (Iterator iter = childrenToRemove.iterator(); iter.hasNext(); )
+    {
+      Element domElement = (Element) iter.next();
+      XSDDOMHelper.removeNodeAndWhitespace(domElement);
+//      domElement.getParentNode().removeChild(domElement);
+    }
+  }
+
+
+  protected ArrayList messages = new ArrayList();
+
+  public ArrayList getMessages()
+  {
+  	return messages;
+  }
+  
+
+  protected void addMessage(String msg, XSDConcreteComponent component)
+  {
+////    ErrorMessage message = new ErrorMessage();
+//    
+//    XSDConcreteComponent currComp = component;
+//    while (!(currComp instanceof XSDSchemaContent) && currComp.getContainer() != null)
+//    {
+//      currComp = currComp.getContainer();
+//    }
+//
+//    Element domElement = currComp.getElement();
+//    Node parent = domElement;
+//    while (!(parent instanceof NodeImpl) && parent != null)
+//    {
+//      parent = parent.getParentNode();
+//    }
+//    if (parent instanceof NodeImpl)
+//    {
+//      // message.setModelObject(currComp.getElement());
+//			message.setTargetObject(currComp.getElement());
+//    }
+//    message.setLocalizedMessage(msg);
+//  ???
+//    addMessage(message);
+  }
+    
+
+// // protected void addMessage(ErrorMessage message)
+//	protected void addMessage(Message message)
+//  {
+//    messages.add(message);
+//  }
+  
+
+  protected ArrayList childrenToRemove = new ArrayList();
+  
+
+  protected String getNamedComponentName(XSDConcreteComponent concrete)
+  {
+    String name = null;
+    if (concrete instanceof XSDNamedComponent)
+    {
+      name = ((XSDNamedComponent)concrete).getName();
+    }
+    
+    XSDConcreteComponent comp = concrete;
+    while (comp != null && name == null)
+    {
+      comp = comp.getContainer();
+      if (comp instanceof XSDNamedComponent)
+      {
+        name = ((XSDNamedComponent)comp).getName();
+      }
+    }
+    return name != null ? name : "";
+  }
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/BaseGlobalCleanup.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/BaseGlobalCleanup.java
new file mode 100644
index 0000000..6503971
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/BaseGlobalCleanup.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.delete;
+
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDNamedComponent;
+
+public class BaseGlobalCleanup extends BaseCleanup
+{
+  public BaseGlobalCleanup(XSDConcreteComponent deletedItem)
+  {
+    this.deletedItem = deletedItem;
+  }
+  
+  protected XSDConcreteComponent deletedItem;
+  
+  protected String getDeletedQName()
+  {
+    return ((XSDNamedComponent)deletedItem).getQName();
+  }
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalAttributeCleanup.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalAttributeCleanup.java
new file mode 100644
index 0000000..2ff9b55
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalAttributeCleanup.java
@@ -0,0 +1,104 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.delete;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
+import org.eclipse.xsd.XSDAttributeDeclaration;
+import org.eclipse.xsd.XSDAttributeGroupContent;
+import org.eclipse.xsd.XSDAttributeUse;
+import org.eclipse.xsd.XSDComplexTypeDefinition;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.util.XSDConstants;
+
+public class GlobalAttributeCleanup extends BaseGlobalCleanup
+{
+  /**
+   * Constructor for GlobalAttributeCleanup.
+   * @param deletedItem
+   */
+  public GlobalAttributeCleanup(XSDConcreteComponent deletedItem)
+  {
+    super(deletedItem);
+  }
+  
+  protected String replacementName = null;
+  
+  protected String getReplacementElementName()
+  {
+    if (replacementName == null)
+    {
+      TypesHelper helper = new TypesHelper(schema);
+      
+      List elements = helper.getGlobalAttributes();
+      
+      String deletedName = getDeletedQName();
+      for (Iterator i = elements.iterator(); i.hasNext();)
+      {
+        String name = (String) i.next();
+        if (!name.equals(deletedName))
+        {
+          replacementName = name;
+          break;
+        }
+      }
+    }
+    return replacementName;
+  }
+
+  /**
+   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitComplexTypeDefinition(XSDComplexTypeDefinition)
+   */
+  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
+  {
+    super.visitComplexTypeDefinition(type);
+    if (type.getAttributeContents() != null)
+    {
+      for (Iterator iter = type.getAttributeContents().iterator(); iter.hasNext(); )
+      {
+        XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent) iter.next();
+        if (attrGroupContent instanceof XSDAttributeUse)
+        {
+          XSDAttributeUse attrUse = (XSDAttributeUse) attrGroupContent;
+          XSDAttributeDeclaration attrDecl = attrUse.getContent();
+          
+          // now is this a reference?
+          if (attrDecl != null && attrDecl.isAttributeDeclarationReference())
+          {
+            if (deletedItem.equals(attrDecl.getResolvedAttributeDeclaration()))
+            {
+              if (getReplacementElementName() != null)
+              {
+				String msg = XSDEditorPlugin.getPlugin().getString("_UI_WARNING_RESET_ATTR_REF", getReplacementElementName()); 
+                addMessage(msg, attrUse);
+                attrUse.getElement().setAttribute(XSDConstants.REF_ATTRIBUTE, getReplacementElementName());
+              }
+              else
+              {
+                String name = getNamedComponentName(type);
+				String msg = XSDEditorPlugin.getPlugin().getString("_UI_WARNING_REMOVE_ATTR_REF", name);
+                addMessage(msg, attrUse.getContainer());
+                
+                childrenToRemove.add(attrDecl.getElement());
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+
+
+  
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalAttributeGroupCleanup.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalAttributeGroupCleanup.java
new file mode 100644
index 0000000..f858427
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalAttributeGroupCleanup.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.delete;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
+import org.eclipse.xsd.XSDAttributeGroupContent;
+import org.eclipse.xsd.XSDAttributeGroupDefinition;
+import org.eclipse.xsd.XSDComplexTypeDefinition;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.util.XSDConstants;
+
+public class GlobalAttributeGroupCleanup extends BaseGlobalCleanup
+{
+  /**
+   * Constructor for GlobalAttributeGroupCleanup.
+   * @param deletedItem
+   */
+  public GlobalAttributeGroupCleanup(XSDConcreteComponent deletedItem)
+  {
+    super(deletedItem);
+  }
+  
+  
+  protected String replacementName = null;
+  
+  protected String getReplacementElementName()
+  {
+    if (replacementName == null)
+    {
+      TypesHelper helper = new TypesHelper(schema);
+      
+      List elements = helper.getGlobalAttributeGroups();
+      
+      String deletedName = getDeletedQName();
+      for (Iterator i = elements.iterator(); i.hasNext();)
+      {
+        String name = (String) i.next();
+        if (!name.equals(deletedName))
+        {
+          replacementName = name;
+          break;
+        }
+      }
+    }
+    return replacementName;
+  }
+
+  /**
+   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitComplexTypeDefinition(XSDComplexTypeDefinition)
+   */
+  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
+  {
+    super.visitComplexTypeDefinition(type);
+    if (type.getAttributeContents() != null)
+    {
+      for (Iterator iter = type.getAttributeContents().iterator(); iter.hasNext(); )
+      {
+        XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent) iter.next();
+
+        if (attrGroupContent instanceof XSDAttributeGroupDefinition)
+        {
+          XSDAttributeGroupDefinition attrGroupDef = (XSDAttributeGroupDefinition) attrGroupContent;
+          
+          if (deletedItem.equals(attrGroupDef.getResolvedAttributeGroupDefinition()))
+          {
+            if (getReplacementElementName() != null)
+            {
+			  String msg = XSDEditorPlugin.getXSDString("_INFO_RESET_ATTRIBUTE_GROUP_REFERENCE") + " <" + getReplacementElementName() + ">";
+              addMessage(msg, attrGroupDef);
+              attrGroupDef.getElement().setAttribute(XSDConstants.REF_ATTRIBUTE, getReplacementElementName());
+            }
+            else
+            {
+              // remove the attribute group reference
+              String name = getNamedComponentName(type);
+			  String msg = XSDEditorPlugin.getXSDString("_INFO_REMOVE_ATTRIBUTE_GROUP_REFERENCE") + " <" + name + ">";  
+              addMessage(msg, attrGroupDef.getContainer());
+              
+              childrenToRemove.add(attrGroupDef.getElement());
+            }
+          }
+        }
+      }
+    }
+    
+  }
+
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalElementCleanup.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalElementCleanup.java
new file mode 100644
index 0000000..9719e39
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalElementCleanup.java
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.delete;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.util.XSDConstants;
+
+public class GlobalElementCleanup extends BaseGlobalCleanup
+{
+    
+  /**
+   * Constructor for GlobalElementCleanup.
+   * @param deletedItem
+   */
+  public GlobalElementCleanup(XSDConcreteComponent deletedItem)
+  {
+    super(deletedItem);
+  }
+
+  protected String replacementName = null;
+  
+  protected String getReplacementElementName()
+  {
+    if (replacementName == null)
+    {
+      TypesHelper helper = new TypesHelper(schema);
+      
+      List elements = helper.getGlobalElements();
+      
+      String deletedName = getDeletedQName();
+      for (Iterator i = elements.iterator(); i.hasNext();)
+      {
+        String name = (String) i.next();
+        if (!name.equals(deletedName))
+        {
+          replacementName = name;
+          break;
+        }
+      }
+    }
+    return replacementName;
+  }
+  
+  /**
+   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitElementDeclaration(XSDElementDeclaration)
+   */
+  public void visitElementDeclaration(XSDElementDeclaration element)
+  {
+    if (element.isElementDeclarationReference())
+    {
+      if (deletedItem.equals(element.getResolvedElementDeclaration()))
+      {
+        if (getReplacementElementName() != null)
+        {
+          // KCPort String msg = XSDPlugin.getSchemaString("_INFO_RESET_ELEMENT_REFERENCE") + " <" + getReplacementElementName() + ">";
+					String msg = "_INFO_RESET_ELEMENT_REFERENCE" + " <" + getReplacementElementName() + ">";
+          addMessage(msg, element);
+          element.getElement().setAttribute(XSDConstants.REF_ATTRIBUTE, getReplacementElementName());
+        }
+        else
+        {
+          // KCPort  String msg = XSDPlugin.getSchemaString("_INFO_REMOVE_ELEMENT_REFERENCE") + " <" + getNamedComponentName(element.getContainer()) + ">";
+					String msg = "_INFO_REMOVE_ELEMENT_REFERENCE" + " <" + getNamedComponentName(element.getContainer()) + ">";
+          addMessage(msg, element.getContainer());
+          childrenToRemove.add(element.getElement());
+        }
+      }
+    }
+    super.visitElementDeclaration(element);
+  }
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalGroupCleanup.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalGroupCleanup.java
new file mode 100644
index 0000000..9486ff2
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalGroupCleanup.java
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.delete;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDModelGroupDefinition;
+import org.eclipse.xsd.util.XSDConstants;
+
+public class GlobalGroupCleanup extends BaseGlobalCleanup
+{
+  /**
+   * Constructor for GlobalGroupCleanup.
+   * @param deletedItem
+   */
+  public GlobalGroupCleanup(XSDConcreteComponent deletedItem)
+  {
+    super(deletedItem);
+  }
+
+  protected String replacementName = null;
+  
+  protected String getReplacementElementName()
+  {
+    if (replacementName == null)
+    {
+      TypesHelper helper = new TypesHelper(schema);
+      
+      List elements = helper.getModelGroups();
+      
+      String deletedName = getDeletedQName();
+      for (Iterator i = elements.iterator(); i.hasNext();)
+      {
+        String name = (String) i.next();
+        if (!name.equals(deletedName))
+        {
+          replacementName = name;
+          break;
+        }
+      }
+    }
+    return replacementName;
+  }
+
+  /**
+   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitModelGroupDefinition(XSDModelGroupDefinition)
+   */
+  public void visitModelGroupDefinition(XSDModelGroupDefinition modelGroup)
+  {
+    super.visitModelGroupDefinition(modelGroup);
+    if (modelGroup.isModelGroupDefinitionReference())
+    {
+      if (deletedItem.equals(modelGroup.getResolvedModelGroupDefinition()))
+      {
+        if (getReplacementElementName() != null)
+        {
+          // KCPort String msg = XSDPlugin.getSchemaString("_INFO_RESET_GROUP_REFERENCE") + " <" + getReplacementElementName() + ">";
+					String msg = "_INFO_RESET_GROUP_REFERENCE" + " <" + getReplacementElementName() + ">";
+          addMessage(msg, modelGroup);
+          modelGroup.getElement().setAttribute(XSDConstants.REF_ATTRIBUTE, getReplacementElementName());
+        }
+        else
+        {
+          String name = getNamedComponentName(modelGroup);
+          // KCPort String msg = XSDPlugin.getSchemaString("_INFO_REMOVE_GROUP_REFERENCE") + " <" + name + ">";
+					String msg = "_INFO_REMOVE_GROUP_REFERENCE" + " <" + name + ">";
+          addMessage(msg, modelGroup.getContainer());
+          childrenToRemove.add(modelGroup.getElement());
+        }
+      }
+    }      
+  }
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalSimpleOrComplexTypeCleanup.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalSimpleOrComplexTypeCleanup.java
new file mode 100644
index 0000000..ed4132c
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalSimpleOrComplexTypeCleanup.java
@@ -0,0 +1,143 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.delete;
+
+import java.text.MessageFormat;
+import java.util.Iterator;
+
+import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+import org.eclipse.xsd.XSDAttributeDeclaration;
+import org.eclipse.xsd.XSDAttributeGroupContent;
+import org.eclipse.xsd.XSDAttributeUse;
+import org.eclipse.xsd.XSDComplexTypeDefinition;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDSimpleTypeDefinition;
+import org.eclipse.xsd.XSDTypeDefinition;
+import org.eclipse.xsd.util.XSDConstants;
+import org.w3c.dom.Element;
+
+public class GlobalSimpleOrComplexTypeCleanup extends BaseGlobalCleanup
+{
+  /**
+   * Constructor for GlobalSimpleOrComplexTypeCleanup.
+   * @param deletedItem
+   */
+  public GlobalSimpleOrComplexTypeCleanup(XSDConcreteComponent deletedItem)
+  {
+    super(deletedItem);
+  }
+
+  /**
+   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitElementDeclaration(XSDElementDeclaration)
+   */
+  public void visitElementDeclaration(XSDElementDeclaration element)
+  {
+    if (!element.isElementDeclarationReference() &&
+        deletedItem.equals(element.getTypeDefinition()))
+    {
+      resetTypeToString(element.getElement());
+      
+      String msg = "";
+      if (element.isGlobal())
+      {
+        String pattern = XSDEditorPlugin.getXSDString("_INFO_RESET_GLOBAL_ELEMENT");
+        Object args[] = {element.getName()};
+        msg = MessageFormat.format(pattern, args);
+      }
+      else
+      {
+        msg = XSDEditorPlugin.getXSDString("_INFO_RESET_ELEMENT");
+        msg += "<" + element.getName() + "> " + XSDEditorPlugin.getXSDString("_UI_TO_TYPE_STRING");
+      }
+      addMessage(msg, element);
+    }
+
+
+    super.visitElementDeclaration(element);
+  }
+
+  /**
+   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitComplexTypeDefinition(XSDComplexTypeDefinition)
+   */
+  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
+  {
+    super.visitComplexTypeDefinition(type);
+    if (type.getAttributeContents() != null)
+    {
+      for (Iterator iter = type.getAttributeContents().iterator(); iter.hasNext(); )
+      {
+        XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent) iter.next();
+        if (attrGroupContent instanceof XSDAttributeUse)
+        {
+          XSDAttributeUse attrUse = (XSDAttributeUse) attrGroupContent;
+          XSDAttributeDeclaration attrDecl = attrUse.getContent();
+          
+          // now is this a reference?
+          if (attrDecl != null &&
+              !attrDecl.isAttributeDeclarationReference() &&
+              deletedItem.equals(attrDecl.getTypeDefinition()))
+          {
+              resetTypeToString(attrDecl.getElement());
+              // reset the type of the attribute decl to string
+              String msg = XSDEditorPlugin.getXSDString("_INFO_RESET_ATTRIBUTE") +
+                          " <" + attrDecl.getName() + "> " +
+                          XSDEditorPlugin.getXSDString("_UI_TO_TYPE_STRING");
+              addMessage(msg, attrDecl);
+              resetTypeToString(attrDecl.getElement());
+          }
+        }
+      }
+    }
+    XSDTypeDefinition base = type.getBaseTypeDefinition();
+    if (base != null && base == deletedItem)
+    {
+      String msg = XSDEditorPlugin.getXSDString("_INFO_RESET_COMPLEX_TYPE") +
+              " <" + getNamedComponentName(type) + "> " +
+              XSDEditorPlugin.getXSDString("_UI_DERIVATION");
+
+      addMessage(msg, type);
+      
+      type.setBaseTypeDefinition(null);
+
+      java.util.List listOfCT = schema.getTypeDefinitions();
+      XSDTypeDefinition typeDefinition = null;
+      if (listOfCT.size() > 0)
+      {
+        for (Iterator iter = listOfCT.iterator(); iter.hasNext(); )
+        {
+          typeDefinition = (XSDTypeDefinition)iter.next();
+          if (typeDefinition != deletedItem)
+          {
+            type.setBaseTypeDefinition(typeDefinition);
+          }
+        }
+      }
+    }
+  }
+
+  public void visitSimpleTypeDefinition(XSDSimpleTypeDefinition type)
+  {
+    if (type.getBaseTypeDefinition() == deletedItem)
+    {
+      type.setBaseTypeDefinition(schema.resolveSimpleTypeDefinition(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, "string"));
+    }
+  }
+
+  protected void resetTypeToString(Element element)
+  {
+    String prefix = element.getPrefix();
+    prefix = (prefix == null) ? "" : (prefix + ":");
+    
+    element.setAttribute(XSDConstants.TYPE_ATTRIBUTE, prefix + "string"); 
+  }
+  
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/XSDExternalFileCleanup.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/XSDExternalFileCleanup.java
new file mode 100644
index 0000000..aa40416
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/XSDExternalFileCleanup.java
@@ -0,0 +1,299 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.delete;
+
+import java.text.MessageFormat;
+import java.util.Iterator;
+
+import org.eclipse.xsd.XSDAttributeDeclaration;
+import org.eclipse.xsd.XSDAttributeGroupContent;
+import org.eclipse.xsd.XSDAttributeGroupDefinition;
+import org.eclipse.xsd.XSDAttributeUse;
+import org.eclipse.xsd.XSDComplexTypeDefinition;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDModelGroupDefinition;
+import org.eclipse.xsd.XSDSchema;
+import org.eclipse.xsd.XSDSchemaContent;
+import org.eclipse.xsd.XSDSchemaDirective;
+import org.eclipse.xsd.XSDSimpleTypeDefinition;
+import org.eclipse.xsd.XSDTypeDefinition;
+import org.eclipse.xsd.util.XSDConstants;
+import org.w3c.dom.Element;
+
+public class XSDExternalFileCleanup extends BaseCleanup
+{
+  /**
+   * Constructor for XSDExternalFileCleanup.
+   */
+  public XSDExternalFileCleanup(String oldFilename)
+  {
+    super();
+    this.oldFilename = oldFilename;
+  }
+  
+  protected XSDSchema deletedSchema;
+  public XSDExternalFileCleanup(XSDSchema deletedSchema)
+  {
+    this.deletedSchema = deletedSchema;
+  }
+
+  protected String oldFilename;
+  
+  /**
+   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitElementDeclaration(XSDElementDeclaration)
+   */
+  public void visitElementDeclaration(XSDElementDeclaration element)
+  {
+    boolean addMessage = true;
+    String schemaLocation = element.getSchema().getSchemaLocation();
+    if (schemaLocation!= null)
+    {
+      if (!schemaLocation.equals(schema.getSchemaLocation()))
+      {
+        addMessage = false;
+      }
+    }
+    if (element.isElementDeclarationReference())
+    {
+      if (isFromDeletedSchema(element.getResolvedElementDeclaration()))
+      {
+        if (addMessage)
+        {
+          // String msg = XSDPlugin.getSchemaString("_INFO_REMOVE_ELEMENT_REFERENCE") + " <" + getNamedComponentName(element.getContainer()) + ">";
+					String msg = "_INFO_REMOVE_ELEMENT_REFERENCE" + " <" + getNamedComponentName(element.getContainer()) + ">";
+          addMessage(msg, element.getContainer());
+        }
+        childrenToRemove.add(element.getElement());
+//        Element domElement = element.getElement();
+//        domElement.getParentNode().removeChild(domElement);     
+      }
+    }
+    else if (removeType(element))
+    {
+      String msg = "";
+      if (element.isGlobal())
+      {
+      	// String pattern = XSDPlugin.getSchemaString("_INFO_RESET_GLOBAL_ELEMENT");
+				String pattern = "_INFO_RESET_GLOBAL_ELEMENT";
+        Object args[] = {element.getName()};
+        msg = MessageFormat.format(pattern, args);
+      }
+      else
+      {
+      	// msg = XSDPlugin.getSchemaString("_INFO_RESET_ELEMENT");
+				msg = "_INFO_RESET_ELEMENT";
+      	// msg += "<" + element.getName() + "> " + XSDPlugin.getSchemaString("_UI_TO_TYPE_STRING");
+				msg += "<" + element.getName() + "> " + "_UI_TO_TYPE_STRING";
+      }
+      if (addMessage)
+      {
+        addMessage(msg, element);
+      }
+    }
+
+
+    super.visitElementDeclaration(element);
+  }
+
+  protected void resetTypeToString(Element element)
+  {
+    String prefix = element.getPrefix();
+    prefix = (prefix == null) ? "" : (prefix + ":");
+    
+    element.setAttribute(XSDConstants.TYPE_ATTRIBUTE, prefix + "string"); 
+  }
+  
+  protected boolean removeType(XSDElementDeclaration element)
+  {
+  	if (removeType(element.getTypeDefinition()))
+  	{
+      resetTypeToString(element.getElement());
+  	  return true;
+  	}
+  	return false;
+  }
+  
+  protected boolean isFromDeletedSchema(XSDConcreteComponent component)
+  {
+    if (component == null)
+    {
+      return false;
+    }
+    XSDConcreteComponent root = component.getRootContainer();
+
+    boolean isFromDeletedSchema = false;
+    if (deletedSchema.getContents() != null)
+    {
+      Iterator contents = deletedSchema.getContents().iterator();
+      while (contents.hasNext())
+      {
+        XSDSchemaContent content = (XSDSchemaContent)contents.next();
+        if (content instanceof XSDSchemaDirective)
+        {
+          XSDSchema aSchema = ((XSDSchemaDirective)content).getResolvedSchema();
+          if (root != null && root.equals(aSchema))
+          {
+            isFromDeletedSchema = true;
+          }
+        }
+      }
+    }
+    if (root != null && root.equals(deletedSchema))
+    {
+      isFromDeletedSchema = true;
+    }
+    return isFromDeletedSchema;
+  }
+      
+  /**
+   * Remove the type from the element if it belongs to the external file
+   */
+  protected boolean removeType(XSDTypeDefinition typeDef)
+  {
+    if (typeDef == null)
+    {
+      return false;
+    }
+    return isFromDeletedSchema(typeDef);
+  }
+
+  /**
+   * @see org.eclipse.wst.xsd.utility.XSDVisitor#visitComplexTypeDefinition(XSDComplexTypeDefinition)
+   */
+  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
+  {
+    super.visitComplexTypeDefinition(type);
+    if (type.getAttributeContents() != null)
+    {
+      for (Iterator iter = type.getAttributeContents().iterator(); iter.hasNext(); )
+      {
+        XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent) iter.next();
+        if (attrGroupContent instanceof XSDAttributeUse)
+        {
+          XSDAttributeUse attrUse = (XSDAttributeUse) attrGroupContent;
+          XSDAttributeDeclaration attrDecl = attrUse.getContent();
+          
+          // now is this a reference?
+          if (attrDecl.isAttributeDeclarationReference())
+          {
+            if (isFromDeletedSchema(attrDecl.getResolvedAttributeDeclaration()))
+            {
+              String name = getNamedComponentName(type);
+              // String msg = XSDPlugin.getSchemaString("_INFO_REMOVE_ATTRIBUTE_REFERENCE") +
+							String msg = "_INFO_REMOVE_ATTRIBUTE_REFERENCE" +
+                       " <" + name + ">";
+              addMessage(msg, attrDecl.getContainer());
+              
+              childrenToRemove.add(attrDecl.getElement());
+            }
+          }
+          // otherwise check the type of the attribute and see if it is from the deleted schema
+          else
+          {
+            if (removeType(attrDecl.getTypeDefinition()))
+            {
+              // reset the type of the attribute decl to string
+              // String msg = XSDPlugin.getSchemaString("_INFO_RESET_ATTRIBUTE") +
+							String msg = "_INFO_RESET_ATTRIBUTE" +
+                          " <" + attrDecl.getName() + "> " +
+                          // XSDPlugin.getSchemaString("_UI_TO_TYPE_STRING");
+							            "_UI_TO_TYPE_STRING";
+              addMessage(msg, attrDecl);
+              resetTypeToString(attrDecl.getElement());
+
+            }
+          }
+        }
+        else if (attrGroupContent instanceof XSDAttributeGroupDefinition)
+        {
+          XSDAttributeGroupDefinition attrGroupDef = (XSDAttributeGroupDefinition) attrGroupContent;
+          
+          if (isFromDeletedSchema(attrGroupDef.getResolvedAttributeGroupDefinition()))
+          {
+          	// remove the attribute group reference
+            String name = getNamedComponentName(type);
+            // String msg = XSDPlugin.getSchemaString("_INFO_REMOVE_ATTRIBUTE_GROUP_REFERENCE") + " <" + name + ">";
+						String msg = "_INFO_REMOVE_ATTRIBUTE_GROUP_REFERENCE" + " <" + name + ">";
+
+            addMessage(msg, attrGroupDef.getContainer());
+            
+            childrenToRemove.add(attrGroupDef.getElement());
+          }
+        }
+      }
+    }
+
+    // For the complex type with simple content case, see the visitComplexTypeDefinition method
+    XSDTypeDefinition base = type.getBaseTypeDefinition();
+    if (base instanceof XSDSimpleTypeDefinition)
+    {
+      XSDSimpleTypeDefinition baseType = (XSDSimpleTypeDefinition)base;
+      if (isFromDeletedSchema(baseType))
+      {
+        // String msg = XSDPlugin.getSchemaString("_INFO_RESET_COMPLEX_TYPE") +
+				String msg = "_INFO_RESET_COMPLEX_TYPE" +
+                " <" + getNamedComponentName(type) + "> " +
+                // XSDPlugin.getSchemaString("_UI_DERIVATION");
+				        "_UI_DERIVATION";
+        addMessage(msg, type);
+      
+        type.setBaseTypeDefinition(schema.getSchemaForSchema().resolveSimpleTypeDefinition("string"));
+      }
+    }
+  }
+
+  /**
+   * @see org.eclipse.wst.xsd.utility.XSDVisitor#visitModelGroupDefinition(XSDModelGroupDefinition)
+   */
+  public void visitModelGroupDefinition(XSDModelGroupDefinition modelGroup)
+  {
+    super.visitModelGroupDefinition(modelGroup);
+    if (modelGroup.isModelGroupDefinitionReference())
+    {
+      if (isFromDeletedSchema(modelGroup.getResolvedModelGroupDefinition()))
+      {
+        String name = getNamedComponentName(modelGroup);
+        // String msg = XSDPlugin.getSchemaString("_INFO_REMOVE_GROUP_REFERENCE") + " <" + name + ">";
+				String msg = "_INFO_REMOVE_GROUP_REFERENCE" + " <" + name + ">";
+        addMessage(msg, modelGroup.getContainer());
+        childrenToRemove.add(modelGroup.getElement());
+      }
+    }      
+  }
+
+  /**
+   * @see org.eclipse.wst.xsd.utility.XSDVisitor#visitSimpleTypeDefinition(XSDSimpleTypeDefinition)
+   */
+  public void visitSimpleTypeDefinition(XSDSimpleTypeDefinition type)
+  {
+    super.visitSimpleTypeDefinition(type);
+    XSDSimpleTypeDefinition baseType = type.getBaseTypeDefinition();
+    if (isFromDeletedSchema(baseType))
+    {
+      // String msg = XSDPlugin.getSchemaString("_INFO_RESET_SIMPLE_TYPE") +
+			String msg = "_INFO_RESET_SIMPLE_TYPE" +
+              " <" + getNamedComponentName(type) + "> " +
+              // XSDPlugin.getSchemaString("_UI_DERIVATION");
+			        "_UI_DERIVATION";
+      addMessage(msg, type);
+      
+
+    // This will set the simple Type base to string 
+    // For the complex type with simple content case, see the visitComplexTypeDefinition method
+
+      type.getFacetContents().clear();
+      type.getFacets().clear();
+      type.setBaseTypeDefinition(schema.getSchemaForSchema().resolveSimpleTypeDefinition("string"));
+    }
+  }
+
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/messages.properties b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/messages.properties
new file mode 100644
index 0000000..5432863
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/messages.properties
@@ -0,0 +1,33 @@
+RefactorMenu.label=Refactor
+RefactorActionGroup.no_refactoring_available=<no refactoring available>
+
+RenameAction.rename=Rename
+RenameAction.unavailable=Operation unavailable on the current selection.\nSelect a ....
+RenameAction.text=Re&name...
+
+RenameInputWizardPage.new_name= &New name:
+RenameRefactoringWizard.internal_error= Internal error during name checking: {0}
+
+
+RenameXSDElementAction.exception=Unexpected exception occurred. See log for details
+RenameXSDElementAction.not_available=Operation unavailable on the current selection.\nSelect a XSD project, folder, resource, file, attribute declarations,  attribute group definitions, complex type definitions, element declarations, identity constraint definitions, model groups definitions, notation declarations, or simple type definitions.
+RenameXSDElementAction.name=Rename
+
+
+RenameSupport.dialog.title=Rename
+RenameSupport.not_available=Rename support not available
+
+RenameComponentWizard.defaultPageTitle=Rename wizard
+RenameComponentWizard.inputPage.description=Rename XML Schema component
+
+RenameInputWizardPage.update_references=Update references
+XSDComponentRenameChange.name=XML Schema component renaming: {0} to {1}
+XSDComponentRenameChange.Renaming=Renaming...
+XSDResourceRenameParticipant.compositeChangeName=XSD file rename references updating changes
+XSDRenameResourceChange.rename_resource=Renaming resource name references
+XSDRenameResourceChange.name=Resource rename: {0} to {1}
+RenameResourceRefactoring.Internal_Error=Internal error
+RenameResourceRefactoring.alread_exists=Resource already exist
+RenameResourceRefactoring.invalidName=Invalid resource name
+RenameResourceProcessor.name=Resource renaming
+MakeLocalElementGlobalAction.text=Make Local Element Global
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/BaseRenamer.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/BaseRenamer.java
new file mode 100644
index 0000000..1a789e8
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/BaseRenamer.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.rename;
+
+import org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor;
+import org.eclipse.xsd.XSDNamedComponent;
+import org.eclipse.xsd.util.XSDConstants;
+
+
+/**
+ * Base class for rename helpers of various named root components.  This is to be used when
+ * the user renames a global element, group, attribute, attribute group, complex/simple type etc
+ */
+public abstract class BaseRenamer extends XSDVisitor
+{
+
+  
+  /**
+   * Method BaseRenamer.
+   * @param globalComponent - this is the component (who's parent is the schema) that has been renamed
+   */
+  public BaseRenamer(XSDNamedComponent globalComponent, String newName)
+  {
+    this.globalComponent = globalComponent;
+    this.newName = newName;
+  }
+  
+  public String getNewQName()
+  {
+    String qName = null;
+    if (newName != null)
+    {
+      qName = XSDConstants.lookupQualifier(globalComponent.getElement(), globalComponent.getTargetNamespace());
+      if (qName != null && qName.length() > 0)
+      {
+        qName += ":" + newName;
+      }
+      else
+      {
+        qName = newName; 
+      }
+    }
+    else
+    {
+      qName = newName;
+    }
+    
+    return qName;
+  }
+  
+  protected String newName;
+  protected XSDNamedComponent globalComponent;
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/ComponentRenameChange.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/ComponentRenameChange.java
new file mode 100644
index 0000000..678c77f
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/ComponentRenameChange.java
@@ -0,0 +1,193 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation 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:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.wst.xsd.ui.internal.refactor.rename;
+
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.jface.text.Assert;
+import org.eclipse.ltk.core.refactoring.Change;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.TextChange;
+import org.eclipse.ltk.core.refactoring.TextFileChange;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDModelGroupDefinition;
+import org.eclipse.xsd.XSDNamedComponent;
+import org.eclipse.xsd.XSDTypeDefinition;
+import org.eclipse.xsd.util.XSDSwitch;
+
+
+/**
+ * @author ebelisar
+ *
+ */
+public class ComponentRenameChange extends Change {
+	
+	private Map fChanges;
+	private String fNewName;
+
+	private String fOldName;
+
+	private XSDNamedComponent fNamedComponent;
+
+	public ComponentRenameChange(XSDNamedComponent component, String oldName, String newName) {
+		Assert.isNotNull(newName, "new name"); //$NON-NLS-1$
+		Assert.isNotNull(oldName, "old name"); //$NON-NLS-1$
+
+		fNamedComponent = component;
+		fOldName= oldName;
+		fNewName= newName;
+	}
+	
+//	public static Change[] createChangesFor(XSDNamedComponent component, String newName) {
+//		// TODO: P1 implement search of XSD files	
+//		XSDSearchSupport support = XSDSearchSupport.getInstance();
+//		RefactorSearchRequestor requestor = new RefactorSearchRequestor(component, newName);
+//		support.searchRunnable(component, IXSDSearchConstants.WORKSPACE_SCOPE, requestor);
+//
+//		return requestor.getChanges();
+//
+//	}
+
+	protected Change createUndoChange() {
+		return new ComponentRenameChange(fNamedComponent, getNewName(), getOldName());
+	}
+	
+	protected void doRename(IProgressMonitor pm) throws CoreException {
+		// TODO P1 change temporary rename of XSD model components 
+		performModify(getNewName());
+	}
+	
+	public void performModify(final String value)
+	  {
+	    if (value.length() > 0)
+	    {
+	      DelayedRenameRunnable runnable = new DelayedRenameRunnable(fNamedComponent, value);
+	      Display.getCurrent().asyncExec(runnable);
+	    }
+	  }      
+
+	  protected static class DelayedRenameRunnable implements Runnable
+	  {
+	    protected XSDNamedComponent component;
+	    protected String name;
+
+	    public DelayedRenameRunnable(XSDNamedComponent component, String name)
+	    {                                                               
+	      this.component = component;
+	      this.name = name;
+	    }                                                              
+
+	    public void run()
+	    {                      
+	      component.updateElement(true);
+	      XSDSwitch xsdSwitch = new XSDSwitch()
+	      {                   
+	        public Object caseXSDTypeDefinition(XSDTypeDefinition object)
+	        {
+	          new GlobalSimpleOrComplexTypeRenamer(object, name).visitSchema(object.getSchema());
+	          return null;
+	        } 
+	      
+	        public Object caseXSDElementDeclaration(XSDElementDeclaration object)
+	        {           
+	          if (object.isGlobal())
+	          {
+	            new GlobalElementRenamer(object, name).visitSchema(object.getSchema());
+	          }
+	          return null;
+	        }
+	      
+	        public Object caseXSDModelGroupDefinition(XSDModelGroupDefinition object)
+	        {
+	          new GlobalGroupRenamer(object, name).visitSchema(object.getSchema());
+	          return null;
+	        }
+	      };
+	      xsdSwitch.doSwitch(component); 
+	      component.setName(name);
+	     
+	    }
+	  }
+	
+	public TextChange getChange(IFile file) {
+		TextChange result= (TextChange)fChanges.get(file);
+		if (result == null) {
+			result= new TextFileChange(file.getName(), file);
+			fChanges.put(file, result);
+		}
+		return result;
+	}
+	
+	public String getName() {
+		return RefactoringMessages.getFormattedString("XSDComponentRenameChange.name", new String[]{getOldName(), getNewName()}); //$NON-NLS-1$
+	}
+
+	public final Change perform(IProgressMonitor pm) throws CoreException {
+		try {
+			pm.beginTask(RefactoringMessages.getString("XSDComponentRenameChange.Renaming"), 1); //$NON-NLS-1$
+			Change result= createUndoChange();
+			doRename(new SubProgressMonitor(pm, 1));
+			return result;
+		} finally {
+			pm.done();
+		}
+	}
+
+	/**
+	 * Gets the newName.
+	 * 
+	 * @return Returns a String
+	 */
+	protected String getNewName() {
+		return fNewName;
+	}
+
+	/**
+	 * Gets the oldName
+	 * 
+	 * @return Returns a String
+	 */
+	protected String getOldName() {
+		return fOldName;
+	}
+
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.Change#getModifiedElement()
+	 */
+	public Object getModifiedElement() {
+		// TODO Auto-generated method stub
+		return fNamedComponent;
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.Change#initializeValidationData(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	public void initializeValidationData(IProgressMonitor pm) {
+		// TODO Auto-generated method stub
+
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.Change#isValid(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException,
+			OperationCanceledException {
+		// TODO implement change validation
+		return new RefactoringStatus();
+	}
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalAttributeGroupRenamer.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalAttributeGroupRenamer.java
new file mode 100644
index 0000000..d01ec4f
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalAttributeGroupRenamer.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.rename;
+
+import java.util.Iterator;
+
+import org.eclipse.xsd.XSDAttributeGroupContent;
+import org.eclipse.xsd.XSDAttributeGroupDefinition;
+import org.eclipse.xsd.XSDComplexTypeDefinition;
+import org.eclipse.xsd.XSDNamedComponent;
+import org.eclipse.xsd.util.XSDConstants;
+
+public class GlobalAttributeGroupRenamer extends BaseRenamer
+{
+  /**
+   * Constructor for GlobalAttributeGroupRenamer.
+   * @param globalComponent
+   */
+  public GlobalAttributeGroupRenamer(XSDNamedComponent globalComponent, String newName)
+  {
+    super(globalComponent, newName);
+  }
+
+  /**
+   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitComplexTypeDefinition(XSDComplexTypeDefinition)
+   */
+  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
+  {
+    super.visitComplexTypeDefinition(type);
+    if (type.getAttributeContents() != null)
+    {
+      for (Iterator iter = type.getAttributeContents().iterator(); iter.hasNext(); )
+      {
+        XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent) iter.next();
+
+        if (attrGroupContent instanceof XSDAttributeGroupDefinition)
+        {
+          XSDAttributeGroupDefinition attrGroupDef = (XSDAttributeGroupDefinition) attrGroupContent;
+          
+          if (globalComponent.equals(attrGroupDef.getResolvedAttributeGroupDefinition()))
+          {
+            attrGroupDef.getElement().setAttribute(XSDConstants.REF_ATTRIBUTE, getNewQName());
+          }
+        }
+      }
+    }
+    
+  }
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalAttributeRenamer.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalAttributeRenamer.java
new file mode 100644
index 0000000..d1b3e68
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalAttributeRenamer.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.rename;
+
+import java.util.Iterator;
+
+import org.eclipse.xsd.XSDAttributeDeclaration;
+import org.eclipse.xsd.XSDAttributeGroupContent;
+import org.eclipse.xsd.XSDAttributeUse;
+import org.eclipse.xsd.XSDComplexTypeDefinition;
+import org.eclipse.xsd.XSDNamedComponent;
+import org.eclipse.xsd.util.XSDConstants;
+
+public class GlobalAttributeRenamer extends BaseRenamer
+{
+  /**
+   * Constructor for GlobalAttributeRenamer.
+   * @param globalComponent
+   */
+  public GlobalAttributeRenamer(XSDNamedComponent globalComponent, String newName)
+  {
+    super(globalComponent, newName);
+  }
+  
+  /**
+   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitComplexTypeDefinition(XSDComplexTypeDefinition)
+   */
+  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
+  {
+    super.visitComplexTypeDefinition(type);
+    if (type.getAttributeContents() != null)
+    {
+      for (Iterator iter = type.getAttributeContents().iterator(); iter.hasNext(); )
+      {
+        XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent) iter.next();
+        if (attrGroupContent instanceof XSDAttributeUse)
+        {
+          XSDAttributeUse attrUse = (XSDAttributeUse) attrGroupContent;
+          XSDAttributeDeclaration attrDecl = attrUse.getContent();
+          
+          // now is this a reference?
+          if (attrDecl != null && attrDecl.isAttributeDeclarationReference())
+          {
+            if (globalComponent.equals(attrDecl.getResolvedAttributeDeclaration()))
+            {
+              attrDecl.getElement().setAttribute(XSDConstants.REF_ATTRIBUTE, getNewQName());           
+            }
+          }
+        }
+      }
+    }
+  }
+
+
+  
+
+  
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalElementRenamer.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalElementRenamer.java
new file mode 100644
index 0000000..869d775
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalElementRenamer.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.rename;
+
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDNamedComponent;
+import org.eclipse.xsd.util.XSDConstants;
+
+public class GlobalElementRenamer extends BaseRenamer
+{
+  /**
+   * Constructor for GlobalElementRenamer.
+   * @param globalComponent
+   */
+  public GlobalElementRenamer(XSDNamedComponent globalComponent, String newName)
+  {
+    super(globalComponent, newName);
+  }
+  
+  /**
+   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitElementDeclaration(XSDElementDeclaration)
+   */
+  public void visitElementDeclaration(XSDElementDeclaration element)
+  {
+    super.visitElementDeclaration(element);
+    if (element.isElementDeclarationReference() &&
+        globalComponent.equals(element.getResolvedElementDeclaration()))
+    {
+      element.getElement().setAttribute(XSDConstants.REF_ATTRIBUTE, getNewQName());
+    }
+  }
+
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalGroupRenamer.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalGroupRenamer.java
new file mode 100644
index 0000000..b29b8e4
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalGroupRenamer.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.rename;
+
+import org.eclipse.xsd.XSDModelGroupDefinition;
+import org.eclipse.xsd.XSDNamedComponent;
+import org.eclipse.xsd.util.XSDConstants;
+
+public class GlobalGroupRenamer extends BaseRenamer
+{
+
+  /**
+   * Constructor for GlobalGroupRenamer.
+   * @param globalComponent
+   */
+  public GlobalGroupRenamer(XSDNamedComponent globalComponent, String newName)
+  {
+    super(globalComponent, newName);
+  }
+
+  /**
+   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitModelGroupDefinition(XSDModelGroupDefinition)
+   */
+  public void visitModelGroupDefinition(XSDModelGroupDefinition modelGroup)
+  {
+    super.visitModelGroupDefinition(modelGroup);
+    if (modelGroup.isModelGroupDefinitionReference())
+    {
+      if (globalComponent.equals(modelGroup.getResolvedModelGroupDefinition()))
+      {
+        modelGroup.getElement().setAttribute(XSDConstants.REF_ATTRIBUTE, getNewQName());
+      }
+    }      
+  }
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalSimpleOrComplexTypeRenamer.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalSimpleOrComplexTypeRenamer.java
new file mode 100644
index 0000000..63e4a67
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalSimpleOrComplexTypeRenamer.java
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.rename;
+
+import java.util.Iterator;
+
+import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
+import org.eclipse.xsd.XSDAttributeDeclaration;
+import org.eclipse.xsd.XSDAttributeGroupContent;
+import org.eclipse.xsd.XSDAttributeUse;
+import org.eclipse.xsd.XSDComplexTypeDefinition;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDNamedComponent;
+import org.eclipse.xsd.XSDTypeDefinition;
+import org.eclipse.xsd.util.XSDConstants;
+import org.w3c.dom.Element;
+
+
+public class GlobalSimpleOrComplexTypeRenamer extends BaseRenamer
+{
+  /**
+   * Constructor for GlobalSimpleOrComplexTypeRenamer.
+   * @param globalComponent
+   */
+  public GlobalSimpleOrComplexTypeRenamer(XSDNamedComponent globalComponent, String newName)
+  {
+    super(globalComponent, newName);
+  }
+  
+  
+  /**
+   * 
+   */
+  public void visitElementDeclaration(XSDElementDeclaration element)
+  {
+    if (!element.isElementDeclarationReference() &&
+        globalComponent.equals(element.getTypeDefinition()))
+    {
+      element.getElement().setAttribute(XSDConstants.TYPE_ATTRIBUTE, getNewQName());
+    }
+
+    super.visitElementDeclaration(element);
+  }
+
+
+  /**
+   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitComplexTypeDefinition(XSDComplexTypeDefinition)
+   */
+  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
+  {
+    super.visitComplexTypeDefinition(type);
+    if (type.getAttributeContents() != null)
+    {
+      for (Iterator iter = type.getAttributeContents().iterator(); iter.hasNext(); )
+      {
+        XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent) iter.next();
+        if (attrGroupContent instanceof XSDAttributeUse)
+        {
+          XSDAttributeUse attrUse = (XSDAttributeUse) attrGroupContent;
+          XSDAttributeDeclaration attrDecl = attrUse.getContent();
+          
+          // now is this a reference?
+          if (!attrDecl.isAttributeDeclarationReference() &&
+              globalComponent.equals(attrDecl.getTypeDefinition()))
+          {
+            attrDecl.getElement().setAttribute(XSDConstants.TYPE_ATTRIBUTE, getNewQName());
+          }
+        }
+      }
+    }
+
+    XSDTypeDefinition base = type.getBaseTypeDefinition();
+    if (base.equals(globalComponent))
+    {
+      XSDDOMHelper helper = new XSDDOMHelper();
+      Element derivedByNode = helper.getDerivedByElementFromComplexType(type.getElement());
+      if (derivedByNode != null)
+      {
+        derivedByNode.setAttribute(XSDConstants.BASE_ATTRIBUTE, getNewQName());
+      }
+    }
+  }
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/INameUpdating.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/INameUpdating.java
new file mode 100644
index 0000000..7aa495e
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/INameUpdating.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation 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:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.rename;
+
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+
+/**
+ * @author ebelisar
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public interface INameUpdating {
+	//---- INameUpdating ---------------------------------------------------
+	public abstract void setNewElementName(String newName);
+
+	public abstract String getNewElementName();
+
+	public abstract String getCurrentElementName();
+
+	/* non java-doc
+	 * @see IRenameRefactoring#checkNewName()
+	 */public abstract RefactoringStatus checkNewElementName(String newName);
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameComponentProcessor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameComponentProcessor.java
new file mode 100644
index 0000000..7d1cf38
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameComponentProcessor.java
@@ -0,0 +1,227 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation 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:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.rename;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.jface.util.Assert;
+import org.eclipse.ltk.core.refactoring.Change;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
+import org.eclipse.ltk.core.refactoring.participants.ParticipantManager;
+import org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant;
+import org.eclipse.ltk.core.refactoring.participants.RenameArguments;
+import org.eclipse.ltk.core.refactoring.participants.RenameProcessor;
+import org.eclipse.ltk.core.refactoring.participants.SharableParticipants;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
+import org.eclipse.xsd.XSDNamedComponent;
+
+public class RenameComponentProcessor extends RenameProcessor  implements INameUpdating{
+	
+	private XSDNamedComponent fNamedComponent;
+	private String fNewElementName;
+
+	public static final String IDENTIFIER= "org.eclipse.wst.ui.xsd.renameComponentProcessor"; //$NON-NLS-1$
+
+	//private QualifiedNameSearchResult fNameSearchResult;
+	
+	public RenameComponentProcessor(XSDNamedComponent element, String newName) {
+		fNamedComponent= element;
+		fNewElementName = newName;
+		
+	}
+	
+	public XSDNamedComponent getNamedComponent() {
+		return fNamedComponent;
+	}
+
+	
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.jdt.internal.corext.refactoring.tagging.ITextUpdating#canEnableTextUpdating()
+	 */
+	public boolean canEnableTextUpdating() {
+		return true;
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.jdt.internal.corext.refactoring.tagging.ITextUpdating#getCurrentElementName()
+	 */
+	public String getCurrentElementName() {
+		
+		return fNamedComponent.getName();
+	}
+
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.wst.xsd.internal.refactoring.rename.XSDRenameProcessor#getAffectedProjectNatures()
+	 */
+	protected String[] getAffectedProjectNatures() throws CoreException {
+		//TODO: find project natures of the files that are going to be refactored
+		return new String[0];
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.wst.xsd.internal.refactoring.rename.XSDRenameProcessor#loadDerivedParticipants(org.eclipse.ltk.core.refactoring.RefactoringStatus, java.util.List, java.lang.String[], org.eclipse.ltk.core.refactoring.participants.SharableParticipants)
+	 */
+	protected void loadDerivedParticipants(RefactoringStatus status,
+			List result, String[] natures, SharableParticipants shared)
+			throws CoreException {
+		// TODO: provide a way to load rename participants
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#checkFinalConditions(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext)
+	 */
+	public RefactoringStatus checkFinalConditions(IProgressMonitor pm,
+			CheckConditionsContext context) throws CoreException,
+			OperationCanceledException {
+		// TODO add code to check final conditions for component rename
+		return new RefactoringStatus();
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#checkInitialConditions(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	public RefactoringStatus checkInitialConditions(IProgressMonitor pm)
+			throws CoreException, OperationCanceledException {
+//		 TODO add code to check initial conditions for component rename
+		return new RefactoringStatus();
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#createChange(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	public Change createChange(IProgressMonitor pm) throws CoreException,
+			OperationCanceledException {
+		// TODO P1 add change creation
+//		Change[] changes = XSDComponentRenameChange.createChangesFor(this.fNamedComponent, getNewElementName());
+//		CompositeChange multiChange = null; 
+//			if(changes.length > 0)
+//				multiChange  = new CompositeChange("XSD component rename participant changes", changes); //$NON-NLS-1$ TODO: externalize string
+//		return multiChange;
+		
+//		computeNameMatches(pm);	
+//		Change[] changes = fNameSearchResult.getAllChanges();
+//		return new CompositeChange("XSD file rename participant changes", changes); //TODO: externalize string
+		pm.beginTask("", 1); //$NON-NLS-1$
+		try{
+			return new ComponentRenameChange(fNamedComponent, fNamedComponent.getName(), getNewElementName());
+		} finally{
+			pm.done();
+		}	 
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#getElements()
+	 */
+	public Object[] getElements() {
+		
+		return new Object[] {fNamedComponent};
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#getIdentifier()
+	 */
+	public String getIdentifier() {
+		return IDENTIFIER;
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#getProcessorName()
+	 */
+	public String getProcessorName() {
+		return RefactoringMessages.getFormattedString(
+				"RenameComponentRefactoring.name",  //$NON-NLS-1$
+				new String[]{fNamedComponent.getTargetNamespace() + ":" + fNamedComponent.getName(), getNewElementName()});
+
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#isApplicable()
+	 */
+	public boolean isApplicable() throws CoreException {
+		if (fNamedComponent == null)
+			return false;
+		// TODO implement isApplicable logic for the named component, 
+		// verify how it is different from other condition checks
+//		if (fNamedComponent.isAnonymous())
+//			return false;
+//		if (! Checks.isAvailable(fType))
+//			return false;
+//		if (isSpecialCase(fType))
+//			return false;
+		return true;
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.jdt.internal.corext.refactoring.tagging.INameUpdating#checkNewElementName(java.lang.String)
+	 */
+	public RefactoringStatus checkNewElementName(String newName){
+		Assert.isNotNull(newName, "new name"); //$NON-NLS-1$
+		// TODO: implement new name checking
+//		RefactoringStatus result = Checks.checkTypeName(newName);
+//		if (Checks.isAlreadyNamed(fType, newName))
+//			result.addFatalError(RefactoringCoreMessages.getString("RenameTypeRefactoring.choose_another_name"));	 //$NON-NLS-1$
+		return new RefactoringStatus();
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.jdt.internal.corext.refactoring.tagging.INameUpdating#getNewElement()
+	 */
+	public Object getNewElement() throws CoreException {
+		// TODO implement this method, it's used for updating selection on new element
+		return null;
+	}
+	
+//	private void computeNameMatches(IProgressMonitor pm) throws CoreException {
+//	
+//	    IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
+//	    try {
+//			URL fileURL = Platform.resolve(new URL(fNamedComponent.getSchema().getSchemaLocation()));
+//			IFile file = workspaceRoot.getFileForLocation(new Path(fileURL.getPath()));
+//			if (fNameSearchResult == null)
+//				fNameSearchResult= new QualifiedNameSearchResult();
+//			QualifiedNameFinder.process(fNameSearchResult, getNamedComponent().getName(),  
+//				getNewElementName(), 
+//				"*.xsd", file.getProject(), pm);
+//		} catch (IOException e) {
+//			// TODO Auto-generated catch block
+//			e.printStackTrace();
+//		}
+//	}
+	
+	public final RefactoringParticipant[] loadParticipants(RefactoringStatus status, SharableParticipants sharedParticipants) throws CoreException {
+		RenameArguments arguments= new RenameArguments(getNewElementName(), true);
+		String[] natures= getAffectedProjectNatures();
+		List result= new ArrayList();
+		loadElementParticipants(status, result, arguments, natures, sharedParticipants);
+		loadDerivedParticipants(status, result, natures, sharedParticipants);
+		return (RefactoringParticipant[])result.toArray(new RefactoringParticipant[result.size()]);
+	}
+	
+	protected void loadElementParticipants(RefactoringStatus status, List result, RenameArguments arguments, String[] natures, SharableParticipants shared) throws CoreException {
+		Object[] elements= getElements();
+		for (int i= 0; i < elements.length; i++) {
+			result.addAll(Arrays.asList(ParticipantManager.loadRenameParticipants(status, 
+				this,  elements[i],
+				arguments, natures, shared)));
+		}
+	}
+	
+	
+	public void setNewElementName(String newName) {
+		
+		fNewElementName= newName;
+	}
+
+	public String getNewElementName() {
+		return fNewElementName;
+	}
+	
+	
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameInputWizardPage.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameInputWizardPage.java
new file mode 100644
index 0000000..c072b5e
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameInputWizardPage.java
@@ -0,0 +1,253 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation 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:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.rename;
+
+
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.util.Assert;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.ui.refactoring.UserInputWizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
+
+/**
+ * @author ebelisar
+ *
+ */
+public class RenameInputWizardPage  extends UserInputWizardPage{
+	private String fInitialValue;
+	private Text fTextField;
+	private Button fUpdateReferences;
+	/**
+	 * Creates a new text input page.
+	 * @param isLastUserPage <code>true</code> if this page is the wizard's last
+	 *  user input page. Otherwise <code>false</code>.
+	 */
+	public RenameInputWizardPage(String description, boolean isLastUserPage) {
+		this(description, isLastUserPage, ""); //$NON-NLS-1$
+	}
+	
+	/**
+	 * Creates a new text input page.
+	 * @param isLastUserPage <code>true</code> if this page is the wizard's last
+	 *  user input page. Otherwise <code>false</code>
+	 * @param initialValue the initial value
+	 */
+	public RenameInputWizardPage(String description, boolean isLastUserPage, String initialValue) {
+	    super("RenameInputWizardPage");
+		Assert.isNotNull(initialValue);
+		setDescription(description);
+		fInitialValue= initialValue;
+	}
+	
+	/**
+	 * Returns whether the initial input is valid. Typically it is not, because the 
+	 * user is required to provide some information e.g. a new type name etc.
+	 * 
+	 * @return <code>true</code> iff the input provided at initialization is valid
+	 */
+	protected boolean isInitialInputValid(){
+		return false;
+	}
+	
+	/**
+	 * Returns whether an empty string is a valid input. Typically it is not, because 
+	 * the user is required to provide some information e.g. a new type name etc.
+	 * 
+	 * @return <code>true</code> iff an empty string is valid
+	 */
+	protected boolean isEmptyInputValid(){
+		return false;
+	}
+	
+	/**
+	 * Returns the content of the text input field.
+	 * 
+	 * @return the content of the text input field. Returns <code>null</code> if
+	 * not text input field has been created
+	 */
+	protected String getText() {
+		if (fTextField == null)
+			return null;
+		return fTextField.getText();	
+	}
+	
+	/**
+	 * Sets the new text for the text field. Does nothing if the text field has not been created.
+	 * @param text the new value
+	 */
+	protected void setText(String text) {
+		if (fTextField == null)
+			return;
+		fTextField.setText(text);
+	}
+	
+	/**
+	 * Performs input validation. Returns a <code>RefactoringStatus</code> which
+	 * describes the result of input validation. <code>Null<code> is interpreted
+	 * as no error.
+	 */
+	protected RefactoringStatus validateTextField(String text){
+		return null;
+	}
+	
+	protected Text createTextInputField(Composite parent) {
+		return createTextInputField(parent, SWT.BORDER);
+	}
+	
+	protected Text createTextInputField(Composite parent, int style) {
+		fTextField= new Text(parent, style);
+		fTextField.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				textModified(getText());
+			}
+		});
+		fTextField.setText(fInitialValue);
+		return fTextField;
+	}
+	
+	/**
+	 * Checks the page's state and issues a corresponding error message. The page validation
+	 * is computed by calling <code>validatePage</code>.
+	 */
+	protected void textModified(String text) {	
+		if (! isEmptyInputValid() && text.equals("")){ //$NON-NLS-1$
+			setPageComplete(false);
+			setErrorMessage(null);
+			restoreMessage();
+			return;
+		}
+		if ((! isInitialInputValid()) && text.equals(fInitialValue)){
+			setPageComplete(false);
+			setErrorMessage(null);
+			restoreMessage();
+			return;
+		}
+		
+		setPageComplete(validateTextField(text));
+		
+//		 TODO: enable preview in M4
+		getRefactoringWizard().setForcePreviewReview(false);
+		getContainer().updateButtons();
+	
+	}
+	
+	/**
+	 * Subclasses can override if they want to restore the message differently.
+	 * This implementation calls <code>setMessage(null)</code>, which clears the message 
+	 * thus exposing the description.
+	 */
+	protected void restoreMessage(){
+		setMessage(null);
+	}
+	
+	/* (non-Javadoc)
+	 * Method declared in IDialogPage
+	 */
+	public void dispose() {
+		fTextField= null;	
+	}
+	
+	/* (non-Javadoc)
+	 * Method declared in WizardPage
+	 */
+	public void setVisible(boolean visible) {
+		if (visible) {
+			textModified(getText());
+		}
+		super.setVisible(visible);
+		if (visible && fTextField != null) {
+			fTextField.setFocus();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+	 */
+	public void createControl(Composite parent) {
+		Composite superComposite= new Composite(parent, SWT.NONE);
+		setControl(superComposite);
+		initializeDialogUnits(superComposite);
+		
+		superComposite.setLayout(new GridLayout());
+		Composite composite= new Composite(superComposite, SWT.NONE);
+		composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));	
+		
+		GridLayout layout= new GridLayout();
+		layout.numColumns= 2;
+		layout.verticalSpacing= 8;
+		composite.setLayout(layout);
+		
+		
+		Label label= new Label(composite, SWT.NONE);
+		label.setText(getLabelText());
+		
+		Text text= createTextInputField(composite);
+		text.selectAll();
+		GridData gd= new GridData(GridData.FILL_HORIZONTAL);
+		gd.widthHint= convertWidthInCharsToPixels(25);
+		text.setLayoutData(gd);
+		
+		addOptionalUpdateReferencesCheckbox(superComposite);
+		gd= new GridData(GridData.FILL_HORIZONTAL);
+		text.setLayoutData(gd);
+		
+		// TODO: enable preview in M4
+		getRefactoringWizard().setForcePreviewReview(false);
+		
+		Dialog.applyDialogFont(superComposite);
+		//WorkbenchHelp.setHelp(getControl(), fHelpContextID);
+
+	}
+	
+	private static Button createCheckbox(Composite parent, String title, boolean value) {
+		Button checkBox= new Button(parent, SWT.CHECK);
+		checkBox.setText(title);
+		checkBox.setSelection(value);
+		return checkBox;		
+	}
+	
+	private void addOptionalUpdateReferencesCheckbox(Composite result) {
+//		 TODO: enable update reference optioin in M4
+//		final IReferenceUpdating ref= (IReferenceUpdating)getRefactoring().getAdapter(IReferenceUpdating.class);
+//		if (ref == null || !ref.canEnableUpdateReferences())	
+//			return;
+		String title= RefactoringMessages.getString("RenameInputWizardPage.update_references"); //$NON-NLS-1$
+		boolean defaultValue= true; 
+		fUpdateReferences= createCheckbox(result, title, defaultValue);
+//		ref.setUpdateReferences(fUpdateReferences.getSelection());
+		fUpdateReferences.addSelectionListener(new SelectionAdapter(){
+			public void widgetSelected(SelectionEvent e) {
+//		ref.setUpdateReferences(fUpdateReferences.getSelection());
+			}
+		});		
+		
+		fUpdateReferences.setEnabled(false);
+		
+	}
+	
+	protected String getLabelText() {
+		return RefactoringMessages.getString("RenameInputWizardPage.new_name"); //$NON-NLS-1$
+	}
+	
+
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameRefactoringWizard.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameRefactoringWizard.java
new file mode 100644
index 0000000..4a31f2e
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameRefactoringWizard.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation 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:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.rename;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ltk.core.refactoring.Refactoring;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.ui.refactoring.RefactoringWizard;
+
+public class RenameRefactoringWizard extends RefactoringWizard {
+	
+	private final String fInputPageDescription;
+
+	private final ImageDescriptor fInputPageImageDescriptor;
+	
+	public RenameRefactoringWizard(Refactoring refactoring, String defaultPageTitle, String inputPageDescription, 
+			ImageDescriptor inputPageImageDescriptor) {
+		super(refactoring, DIALOG_BASED_USER_INTERFACE);
+		setDefaultPageTitle(defaultPageTitle);
+    	fInputPageDescription= inputPageDescription;
+		fInputPageImageDescriptor= inputPageImageDescriptor;
+
+	}
+
+	/* non java-doc
+	 * @see RefactoringWizard#addUserInputPages
+	 */ 
+	protected void addUserInputPages() {
+		String initialSetting= getProcessor().getCurrentElementName();
+		RenameInputWizardPage inputPage= createInputPage(fInputPageDescription, initialSetting);
+		inputPage.setImageDescriptor(fInputPageImageDescriptor);
+		addPage(inputPage);
+	}
+
+	protected INameUpdating getProcessor() {
+		
+		return (INameUpdating)getRefactoring().getAdapter(INameUpdating.class);	
+	}
+	
+	
+	protected RenameInputWizardPage createInputPage(String message, String initialSetting) {
+		return new RenameInputWizardPage(message, true, initialSetting) {
+			protected RefactoringStatus validateTextField(String text) {
+				return validateNewName(text);
+			}	
+		};
+	}
+	
+	protected RefactoringStatus validateNewName(String newName) {
+		INameUpdating ref= getProcessor();
+		ref.setNewElementName(newName);
+//		try{
+			return ref.checkNewElementName(newName);
+//		} catch (CoreException e){
+//			//XXX: should log the exception
+//			String msg= e.getMessage() == null ? "": e.getMessage(); //$NON-NLS-1$
+//			return RefactoringStatus.createFatalErrorStatus(RefactoringMessages.getFormattedString("RenameRefactoringWizard.internal_error", msg));//$NON-NLS-1$
+//		}	
+	}
+	
+	
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameResourceProcessor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameResourceProcessor.java
new file mode 100644
index 0000000..fd326c4
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameResourceProcessor.java
@@ -0,0 +1,170 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation 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:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package  org.eclipse.wst.xsd.ui.internal.refactor.rename;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.util.Assert;
+import org.eclipse.ltk.core.refactoring.Change;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
+import org.eclipse.ltk.core.refactoring.participants.ParticipantManager;
+import org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant;
+import org.eclipse.ltk.core.refactoring.participants.RenameArguments;
+import org.eclipse.ltk.core.refactoring.participants.RenameProcessor;
+import org.eclipse.ltk.core.refactoring.participants.SharableParticipants;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
+
+public class RenameResourceProcessor extends RenameProcessor implements INameUpdating {
+
+	private IResource fResource;
+	private String fNewElementName;
+		
+	public static final String IDENTIFIER= "org.eclipse.wst.ui.xsd.renameResourceProcessor"; //$NON-NLS-1$
+	
+	public RenameResourceProcessor(IResource resource) {
+		fResource= resource;
+		if (fResource != null) {
+			setNewElementName(fResource.getName());
+		}
+	}
+
+	//---- INameUpdating ---------------------------------------------------
+	
+	public void setNewElementName(String newName) {
+		Assert.isNotNull(newName);
+		fNewElementName= newName;
+	}
+
+	public String getNewElementName() {
+		return fNewElementName;
+	}
+	
+	//---- IRenameProcessor methods ---------------------------------------
+		
+	public String getIdentifier() {
+		return IDENTIFIER;
+	}
+	
+	public boolean isApplicable()  {
+		if (fResource == null)
+			return false;
+		if (! fResource.exists())
+			return false;
+		if (! fResource.isAccessible())	
+			return false;
+		return true;			
+	}
+	
+	public String getProcessorName() {
+		String message= RefactoringMessages.getFormattedString("RenameResourceProcessor.name", //$NON-NLS-1$
+				new String[]{getCurrentElementName(), getNewElementName()});
+		return message;
+	}
+	
+	public Object[] getElements() {
+		return new Object[] {fResource};
+	}
+	
+	public String getCurrentElementName() {
+		return fResource.getName();
+	}
+	
+	public String[] getAffectedProjectNatures() throws CoreException {
+		return new String[0];
+	}
+
+	public Object getNewElement() {
+		return ResourcesPlugin.getWorkspace().getRoot().findMember(createNewPath(getNewElementName()));
+	}
+
+	public boolean getUpdateReferences() {
+		return true;
+	}
+	
+	public RefactoringParticipant[] loadParticipants(RefactoringStatus status, SharableParticipants shared) throws CoreException {
+		Object[] elements= getElements();
+		String[] natures= getAffectedProjectNatures();
+		List result= new ArrayList();
+		RenameArguments arguments= new RenameArguments(getNewElementName(), getUpdateReferences());
+		for (int i= 0; i < elements.length; i++) {
+			result.addAll(Arrays.asList(ParticipantManager.loadRenameParticipants(status, 
+				this, elements[i],
+				arguments, natures, shared)));
+		}
+		return (RefactoringParticipant[])result.toArray(new RefactoringParticipant[result.size()]);
+	}
+	
+	//--- Condition checking --------------------------------------------
+
+	public RefactoringStatus checkInitialConditions(IProgressMonitor pm) throws CoreException {
+		return new RefactoringStatus();
+	}
+	
+	/* non java-doc
+	 * @see IRenameRefactoring#checkNewName()
+	 */
+	public RefactoringStatus checkNewElementName(String newName)  {
+		Assert.isNotNull(newName, "new name"); //$NON-NLS-1$
+		IContainer c= fResource.getParent();
+		if (c == null)
+			return RefactoringStatus.createFatalErrorStatus(RefactoringMessages.getString("RenameResourceRefactoring.Internal_Error")); //$NON-NLS-1$
+						
+		if (c.findMember(newName) != null)
+			return RefactoringStatus.createFatalErrorStatus(RefactoringMessages.getString("RenameResourceRefactoring.alread_exists")); //$NON-NLS-1$
+			
+		if (!c.getFullPath().isValidSegment(newName))
+			return RefactoringStatus.createFatalErrorStatus(RefactoringMessages.getString("RenameResourceRefactoring.invalidName")); //$NON-NLS-1$
+	
+		RefactoringStatus result= RefactoringStatus.create(c.getWorkspace().validateName(newName, fResource.getType()));
+		if (! result.hasFatalError())
+			result.merge(RefactoringStatus.create(c.getWorkspace().validatePath(createNewPath(newName), fResource.getType())));		
+		return result;		
+	}
+	
+	/* non java-doc
+	 * @see Refactoring#checkInput(IProgressMonitor)
+	 */
+	public RefactoringStatus checkFinalConditions(IProgressMonitor pm, CheckConditionsContext context)  {
+		pm.beginTask("", 1); //$NON-NLS-1$
+		try{
+			return new RefactoringStatus();
+		} finally{
+			pm.done();
+		}	
+	}
+
+	private String createNewPath(String newName){
+		return fResource.getFullPath().removeLastSegments(1).append(newName).toString();
+	}
+		
+	//--- changes 
+	
+	/* non java-doc 
+	 * @see IRefactoring#createChange(IProgressMonitor)
+	 */
+	public Change createChange(IProgressMonitor pm) {
+		pm.beginTask("", 1); //$NON-NLS-1$
+		try{
+			return new ResourceRenameChange(fResource, getNewElementName());
+		} finally{
+			pm.done();
+		}	
+	}
+}
+
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameSupport.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameSupport.java
new file mode 100644
index 0000000..a923f3f
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameSupport.java
@@ -0,0 +1,205 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation 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:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.rename;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.operation.IRunnableContext;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.RefactoringStatusEntry;
+import org.eclipse.ltk.core.refactoring.participants.RenameRefactoring;
+import org.eclipse.ltk.ui.refactoring.RefactoringWizard;
+import org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.actions.GlobalBuildAction;
+import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
+import org.eclipse.xsd.XSDNamedComponent;
+
+
+
+/**
+ * Central access point to execute rename refactorings.
+ * <p>
+ * Note: this class is not intended to be subclassed.
+ * </p>
+ */
+public class RenameSupport {
+
+	private RenameRefactoring fRefactoring;
+	private RefactoringStatus fPreCheckStatus;
+	
+	/**
+	 * Executes some light weight precondition checking. If the returned status
+	 * is an error then the refactoring can't be executed at all. However,
+	 * returning an OK status doesn't guarantee that the refactoring can be
+	 * executed. It may still fail while performing the exhaustive precondition
+	 * checking done inside the methods <code>openDialog</code> or
+	 * <code>perform</code>.
+	 * 
+	 * The method is mainly used to determine enable/disablement of actions.
+	 * 
+	 * @return the result of the light weight precondition checking.
+	 * 
+	 * @throws CoreException if an unexpected exception occurs while performing the checking.
+	 * 
+	 * @see #openDialog(Shell)
+	 * @see #perform(Shell, IRunnableContext)
+	 */
+	public IStatus preCheck() throws CoreException {
+		ensureChecked();
+		if (fPreCheckStatus.hasFatalError())
+			return asStatus(fPreCheckStatus.getEntryMatchingSeverity(RefactoringStatus.FATAL));
+		else
+			return new Status(IStatus.OK, XSDEditorPlugin.PLUGIN_ID, 0, "", null); //$NON-NLS-1$
+	}
+
+	/**
+	 * Opens the refactoring dialog for this rename support. 
+	 * 
+	 * @param parent a shell used as a parent for the refactoring dialog.
+	 * @throws CoreException if an unexpected exception occurs while opening the
+	 * dialog.
+	 */
+	public void openDialog(Shell parent) throws CoreException {
+		ensureChecked();
+		if (fPreCheckStatus.hasFatalError()) {
+			showInformation(parent, fPreCheckStatus);
+			return; 
+		}
+		try {
+			RefactoringWizard wizard = new RenameRefactoringWizard(
+					fRefactoring,
+					RefactoringMessages.getString("RenameComponentWizard.defaultPageTitle"), //$NON-NLS-1$ TODO: provide correct strings
+					RefactoringMessages.getString("RenameComponentWizard.inputPage.description"), //$NON-NLS-1$
+					null);
+			RefactoringWizardOpenOperation op= new RefactoringWizardOpenOperation(wizard);
+			int result= op.run(parent, wizard.getDefaultPageTitle());
+			op.getInitialConditionCheckingStatus();
+			if (result == IDialogConstants.CANCEL_ID || result == RefactoringWizardOpenOperation.INITIAL_CONDITION_CHECKING_FAILED)
+				triggerBuild();
+		} catch (InterruptedException e) {
+			// do nothing. User action got cancelled
+		}
+	
+	}
+	
+	public void triggerBuild() {
+		if (ResourcesPlugin.getWorkspace().getDescription().isAutoBuilding()) {
+			new GlobalBuildAction(XSDEditorPlugin.getPlugin().getWorkbench().getActiveWorkbenchWindow(), IncrementalProjectBuilder.INCREMENTAL_BUILD).run();
+		}
+	}
+	
+	/**
+	 * Executes the rename refactoring without showing a dialog to gather
+	 * additional user input (for example the new name of the <tt>IJavaElement</tt>).
+	 * Only an error dialog is shown (if necessary) to present the result
+	 * of the refactoring's full precondition checking.
+	 * <p>
+	 * The method has to be called from within the UI thread. 
+	 * </p>
+	 * 
+	 * @param parent a shell used as a parent for the error dialog.
+	 * @param context a {@link IRunnableContext} to execute the operation.
+	 * 
+	 * @throws InterruptedException if the operation has been cancelled by the
+	 * user.
+	 * @throws InvocationTargetException if an error occurred while executing the
+	 * operation.
+	 * 
+	 * @see #openDialog(Shell)
+	 * @see IRunnableContext#run(boolean, boolean, org.eclipse.jface.operation.IRunnableWithProgress)
+	 */
+	public void perform(Shell parent, IRunnableContext context) throws InterruptedException, InvocationTargetException {
+		try {
+			ensureChecked();
+			if (fPreCheckStatus.hasFatalError()) {
+				showInformation(parent, fPreCheckStatus);
+				return; 
+			}
+		} catch (CoreException e){
+			throw new InvocationTargetException(e);
+		}
+	}
+	
+
+
+	
+	private RenameSupport(RenameComponentProcessor processor, String newName) throws CoreException {
+		fRefactoring= new RenameRefactoring(processor);
+		
+	}
+
+	
+	/**
+	 * Creates a new rename support for the given {@link IPackageFragment}.
+	 * 
+	 * @param fragment the {@link IPackageFragment} to be renamed.
+	 * @param newName the package fragment's new name. <code>null</code> is a
+	 * valid value indicating that no new name is provided.
+	 * @param flags flags controlling additional parameters. Valid flags are
+	 * <code>UPDATE_REFERENCES</code>, and <code>UPDATE_TEXTUAL_MATCHES</code>,
+	 * or their bitwise OR, or <code>NONE</code>.
+	 * @return the {@link RenameSupport}.
+	 * @throws CoreException if an unexpected error occurred while creating
+	 * the {@link RenameSupport}.
+	 */
+	public static RenameSupport create(XSDNamedComponent component, String newName) throws CoreException {
+		RenameComponentProcessor processor= new RenameComponentProcessor(component, newName);
+		return new RenameSupport(processor, newName);
+	}
+	
+	
+	private void ensureChecked() throws CoreException {
+		if (fPreCheckStatus == null) {
+			if (!fRefactoring.isApplicable()) {
+				fPreCheckStatus= RefactoringStatus.createFatalErrorStatus(RefactoringMessages.getString("RenameSupport.not_available")); //$NON-NLS-1$
+			} else {
+				fPreCheckStatus= new RefactoringStatus();
+			}
+		}
+	}
+	
+	private void showInformation(Shell parent, RefactoringStatus status) {
+		String message= status.getMessageMatchingSeverity(RefactoringStatus.FATAL);
+		MessageDialog.openInformation(parent, RefactoringMessages.getString("RenameSupport.dialog.title"), message); //$NON-NLS-1$
+	}
+	
+	private static IStatus asStatus(RefactoringStatusEntry entry) {
+		int statusSeverity= IStatus.ERROR;
+		switch (entry.getSeverity()) {
+			case RefactoringStatus.OK :
+				statusSeverity= IStatus.OK;
+				break;
+			case RefactoringStatus.INFO :
+				statusSeverity= IStatus.INFO;
+				break;
+			case RefactoringStatus.WARNING :
+			case RefactoringStatus.ERROR :
+				statusSeverity= IStatus.WARNING;
+				break;
+		}
+		String pluginId= entry.getPluginId();
+		int code= entry.getCode();
+		if (pluginId == null) {
+			pluginId= XSDEditorPlugin.PLUGIN_ID;
+			code= IStatus.ERROR;
+		}
+		return new Status(statusSeverity, pluginId, code, entry.getMessage(), null);
+	}
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/ResourceRenameChange.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/ResourceRenameChange.java
new file mode 100644
index 0000000..c232e2b
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/ResourceRenameChange.java
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation 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:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.rename;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.ltk.core.refactoring.Change;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
+
+/**
+ * Represents a change that renames a given resource
+ */
+public class ResourceRenameChange extends Change {
+
+	/*
+	 * we cannot use handles because they became invalid when you rename the resource.
+	 * paths do not.
+	 */
+	private IPath fResourcePath;
+
+	private String fNewName;
+
+	/**
+	 * @param newName includes the extension
+	 */
+	public ResourceRenameChange(IResource resource, String newName) {
+		this(resource.getFullPath(), newName);
+	}
+
+	private ResourceRenameChange(IPath resourcePath, String newName) {
+		fResourcePath= resourcePath;
+		fNewName= newName;
+	}
+
+	private IResource getResource() {
+		return ResourcesPlugin.getWorkspace().getRoot().findMember(fResourcePath);
+	}
+
+	public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException {
+		
+		// TODO: implement file validation, see JDTChange
+		return new RefactoringStatus();
+	}
+	
+	/*
+	 * to avoid the exception senders should check if a resource with the new name
+	 * already exists
+	 */
+	public Change perform(IProgressMonitor pm) throws CoreException {
+		try {
+			if (false)
+				throw new NullPointerException();
+			pm.beginTask(RefactoringMessages.getString("XSDRenameResourceChange.rename_resource"), 1); //$NON-NLS-1$
+
+			getResource().move(renamedResourcePath(fResourcePath, fNewName), getCoreRenameFlags(), pm);
+
+			String oldName= fResourcePath.lastSegment();
+			IPath newPath= renamedResourcePath(fResourcePath, fNewName);
+			return new ResourceRenameChange(newPath, oldName);
+		} finally {
+			pm.done();
+		}
+	}
+
+	private int getCoreRenameFlags() {
+		if (getResource().isLinked())
+			return IResource.SHALLOW;
+		else
+			return IResource.NONE;
+	}
+
+	/*
+	 * changes resource names /s/p/A.java renamed to B.java becomes /s/p/B.java
+	 */
+	public static IPath renamedResourcePath(IPath path, String newName) {
+		return path.removeLastSegments(1).append(newName);
+	}
+
+	public String getName() {
+		return RefactoringMessages.getFormattedString(
+			"XSDRenameResourceChange.name", new String[]{fResourcePath.toString(), //$NON-NLS-1$
+			renamedResourcePath(fResourcePath, fNewName).toString()});
+	}
+
+	public Object getModifiedElement() {
+		return getResource();
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.Change#initializeValidationData(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	public void initializeValidationData(IProgressMonitor pm) {
+		// TODO Auto-generated method stub
+
+	}
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/ResourceRenameParticipant.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/ResourceRenameParticipant.java
new file mode 100644
index 0000000..e469981
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/ResourceRenameParticipant.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation 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:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.rename;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.ltk.core.refactoring.Change;
+import org.eclipse.ltk.core.refactoring.CompositeChange;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
+import org.eclipse.ltk.core.refactoring.participants.RenameParticipant;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
+
+/**
+ * @author ebelisar
+ */
+public class ResourceRenameParticipant extends RenameParticipant {
+	
+	private IFile fFile = null;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#initialize(java.lang.Object)
+	 */
+	protected boolean initialize(Object element) {
+		if(element instanceof IFile) {
+			this.fFile = (IFile) element;
+			return true;
+		}
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#getName()
+	 */
+	public String getName() {
+		String name = ""; //$NON-NLS-1$
+		if(this.fFile != null) {
+			name = fFile.getName();
+		}
+		return name;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#checkConditions(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext)
+	 */
+	public RefactoringStatus checkConditions(IProgressMonitor pm,
+			CheckConditionsContext context) throws OperationCanceledException {
+		// TODO add check for file content type
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#createChange(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	public Change createChange(IProgressMonitor pm) throws CoreException,
+			OperationCanceledException {
+		//computeQualifiedNameMatches(pm);	
+		//Change[] changes = fQualifiedNameSearchResult.getAllChanges();
+		return new CompositeChange(RefactoringMessages.getString("XSDResourceRenameParticipant.compositeChangeName"));
+		
+	}
+	
+//	private void computeQualifiedNameMatches(IProgressMonitor pm) throws CoreException {
+//		IPath fragment= fFile.getFullPath();
+//		if (fQualifiedNameSearchResult == null)
+//			fQualifiedNameSearchResult= new QualifiedNameSearchResult();
+//		QualifiedNameFinder.process(fQualifiedNameSearchResult, fFile.getName(),  
+//			getArguments().getNewName(), 
+//			"*.xsd", fFile.getProject(), pm);
+//	}
+	
+
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/SchemaPrefixChangeHandler.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/SchemaPrefixChangeHandler.java
index 3ecd3a3..35e90a3 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/SchemaPrefixChangeHandler.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/SchemaPrefixChangeHandler.java
@@ -12,7 +12,9 @@
 
 import java.util.Iterator;
 import java.util.List;
+
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor;
 import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
 import org.eclipse.xsd.XSDAttributeDeclaration;
 import org.eclipse.xsd.XSDElementDeclaration;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/TargetNamespaceChangeHandler.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/TargetNamespaceChangeHandler.java
index 8635ec2..ef996b1 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/TargetNamespaceChangeHandler.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/TargetNamespaceChangeHandler.java
@@ -11,7 +11,9 @@
 package org.eclipse.wst.xsd.ui.internal.refactor.rename;
 
 import java.util.Iterator;
+
 import org.eclipse.emf.common.util.EList;
+import org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor;
 import org.eclipse.xsd.XSDAttributeDeclaration;
 import org.eclipse.xsd.XSDAttributeGroupContent;
 import org.eclipse.xsd.XSDAttributeGroupDefinition;
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeTypeGlobalChange.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeTypeGlobalChange.java
new file mode 100644
index 0000000..80a6ac0
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeTypeGlobalChange.java
@@ -0,0 +1,171 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation 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:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.wst.xsd.ui.internal.refactor.structure;
+
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.jface.text.Assert;
+import org.eclipse.ltk.core.refactoring.Change;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.TextChange;
+import org.eclipse.ltk.core.refactoring.TextFileChange;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
+import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.commands.MakeAnonymousTypeGlobalCommand;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
+import org.eclipse.xsd.XSDTypeDefinition;
+
+/**
+ * @author ebelisar
+ * 
+ */
+public class MakeTypeGlobalChange extends Change {
+
+	private Map fChanges;
+
+	private String fNewName;
+
+	private XSDTypeDefinition fTypeComponent;
+
+	public MakeTypeGlobalChange(XSDTypeDefinition component, 
+			String newName) {
+		Assert.isNotNull(newName, "new name"); //$NON-NLS-1$
+
+		fTypeComponent = component;
+		fNewName = newName;
+	}
+
+	// public static Change[] createChangesFor(XSDNamedComponent component,
+	// String newName) {
+	// // TODO: P1 implement search of XSD files
+	// XSDSearchSupport support = XSDSearchSupport.getInstance();
+	// RefactorSearchRequestor requestor = new
+	// RefactorSearchRequestor(component, newName);
+	// support.searchRunnable(component, IXSDSearchConstants.WORKSPACE_SCOPE,
+	// requestor);
+	//
+	// return requestor.getChanges();
+	//
+	// }
+
+	protected Change createUndoChange() {
+		return new MakeTypeGlobalChange(fTypeComponent, getNewName());
+	}
+
+	protected void doRename(IProgressMonitor pm) throws CoreException {
+		// TODO P1 change temporary rename of XSD model components
+		performModify(getNewName());
+	}
+
+	public void performModify(final String value) {
+			DelayedRenameRunnable runnable = new DelayedRenameRunnable(
+					fTypeComponent, value);
+			Display.getCurrent().asyncExec(runnable);
+	}
+
+	protected static class DelayedRenameRunnable implements Runnable {
+		protected XSDTypeDefinition component;
+
+		protected String name;
+
+		public DelayedRenameRunnable(XSDTypeDefinition component, String name) {
+			this.component = component;
+			this.name = name;
+		}
+
+		public void run() {
+			DocumentImpl doc = (DocumentImpl) component.getElement().getOwnerDocument();
+			doc.getModel().beginRecording(
+							this,
+							XSDEditorPlugin
+									.getXSDString("_UI_ACTION_MAKE_ANONYMOUS_TYPE_GLOBAL"));
+			MakeAnonymousTypeGlobalCommand command = new MakeAnonymousTypeGlobalCommand(
+					component, name);
+			command.run();
+			doc.getModel().endRecording(this);
+		}
+	}
+
+	public TextChange getChange(IFile file) {
+		TextChange result = (TextChange) fChanges.get(file);
+		if (result == null) {
+			result = new TextFileChange(file.getName(), file);
+			fChanges.put(file, result);
+		}
+		return result;
+	}
+
+	public String getName() {
+		return RefactoringMessages
+				.getFormattedString(
+						"MakeTypeGlobalChange.name", new String[] {getNewName() }); //$NON-NLS-1$
+	}
+
+	public final Change perform(IProgressMonitor pm) throws CoreException {
+		try {
+			pm.beginTask(RefactoringMessages
+					.getString("XSDComponentRenameChange.Renaming"), 1); //$NON-NLS-1$
+			Change result = createUndoChange();
+			doRename(new SubProgressMonitor(pm, 1));
+			return result;
+		} finally {
+			pm.done();
+		}
+	}
+
+	/**
+	 * Gets the newName.
+	 * 
+	 * @return Returns a String
+	 */
+	protected String getNewName() {
+		return fNewName;
+	}
+
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ltk.core.refactoring.Change#getModifiedElement()
+	 */
+	public Object getModifiedElement() {
+		// TODO Auto-generated method stub
+		return fTypeComponent;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ltk.core.refactoring.Change#initializeValidationData(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	public void initializeValidationData(IProgressMonitor pm) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ltk.core.refactoring.Change#isValid(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException,
+			OperationCanceledException {
+		// TODO implement change validation
+		return new RefactoringStatus();
+	}
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeTypeGlobalProcessor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeTypeGlobalProcessor.java
new file mode 100644
index 0000000..d94fd26
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeTypeGlobalProcessor.java
@@ -0,0 +1,219 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation 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:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.structure;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.jface.util.Assert;
+import org.eclipse.ltk.core.refactoring.Change;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
+import org.eclipse.ltk.core.refactoring.participants.ParticipantManager;
+import org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant;
+import org.eclipse.ltk.core.refactoring.participants.RenameArguments;
+import org.eclipse.ltk.core.refactoring.participants.RenameProcessor;
+import org.eclipse.ltk.core.refactoring.participants.SharableParticipants;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.INameUpdating;
+import org.eclipse.xsd.XSDTypeDefinition;
+
+public class MakeTypeGlobalProcessor extends RenameProcessor implements INameUpdating{
+	
+	private XSDTypeDefinition fTypeComponent;
+	private String fNewElementName;
+
+	public static final String IDENTIFIER= "org.eclipse.wst.ui.xsd.makeTypeGlobalProcessor"; //$NON-NLS-1$
+
+	//private QualifiedNameSearchResult fNameSearchResult;
+	
+	public MakeTypeGlobalProcessor(XSDTypeDefinition element, String newName) {
+		fTypeComponent= element;
+		fNewElementName = newName;
+		
+	}
+	
+	public XSDTypeDefinition getTypeComponent() {
+		return fTypeComponent;
+	}
+
+	
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.jdt.internal.corext.refactoring.tagging.ITextUpdating#canEnableTextUpdating()
+	 */
+	public boolean canEnableTextUpdating() {
+		return true;
+	}
+
+	protected String[] getAffectedProjectNatures() throws CoreException {
+		//TODO: find project natures of the files that are going to be refactored
+		return new String[0];
+	}
+	
+	protected void loadDerivedParticipants(RefactoringStatus status,
+			List result, String[] natures, SharableParticipants shared)
+			throws CoreException {
+		// TODO: provide a way to load rename participants
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#checkFinalConditions(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext)
+	 */
+	public RefactoringStatus checkFinalConditions(IProgressMonitor pm,
+			CheckConditionsContext context) throws CoreException,
+			OperationCanceledException {
+		// TODO add code to check final conditions for component rename
+		return new RefactoringStatus();
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#checkInitialConditions(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	public RefactoringStatus checkInitialConditions(IProgressMonitor pm)
+			throws CoreException, OperationCanceledException {
+//		 TODO add code to check initial conditions for component rename
+		return new RefactoringStatus();
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#createChange(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	public Change createChange(IProgressMonitor pm) throws CoreException,
+			OperationCanceledException {
+		// TODO P1 add change creation
+//		Change[] changes = XSDComponentRenameChange.createChangesFor(this.fNamedComponent, getNewElementName());
+//		CompositeChange multiChange = null; 
+//			if(changes.length > 0)
+//				multiChange  = new CompositeChange("XSD component rename participant changes", changes); //$NON-NLS-1$ TODO: externalize string
+//		return multiChange;
+		
+//		computeNameMatches(pm);	
+//		Change[] changes = fNameSearchResult.getAllChanges();
+//		return new CompositeChange("XSD file rename participant changes", changes); //TODO: externalize string
+		pm.beginTask("", 1); //$NON-NLS-1$
+		try{
+			return new MakeTypeGlobalChange(fTypeComponent, getNewElementName());
+		} finally{
+			pm.done();
+		}	 
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#getElements()
+	 */
+	public Object[] getElements() {
+		
+		return new Object[] {fTypeComponent};
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#getIdentifier()
+	 */
+	public String getIdentifier() {
+		return IDENTIFIER;
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#getProcessorName()
+	 */
+	public String getProcessorName() {
+		return RefactoringMessages.getFormattedString(
+				"MakeLocalTypeGlobalRefactoring.name",  //$NON-NLS-1$
+				new String[]{getNewElementName()});
+
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#isApplicable()
+	 */
+	public boolean isApplicable() throws CoreException {
+		if (fTypeComponent == null)
+			return false;
+		// TODO implement isApplicable logic for the named component, 
+		// verify how it is different from other condition checks
+//		if (fNamedComponent.isAnonymous())
+//			return false;
+//		if (! Checks.isAvailable(fType))
+//			return false;
+//		if (isSpecialCase(fType))
+//			return false;
+		return true;
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.jdt.internal.corext.refactoring.tagging.INameUpdating#checkNewElementName(java.lang.String)
+	 */
+	public RefactoringStatus checkNewElementName(String newName){
+		Assert.isNotNull(newName, "new name"); //$NON-NLS-1$
+		// TODO: implement new name checking
+//		RefactoringStatus result = Checks.checkTypeName(newName);
+//		if (Checks.isAlreadyNamed(fType, newName))
+//			result.addFatalError(RefactoringCoreMessages.getString("RenameTypeRefactoring.choose_another_name"));	 //$NON-NLS-1$
+		return new RefactoringStatus();
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.jdt.internal.corext.refactoring.tagging.INameUpdating#getNewElement()
+	 */
+	public Object getNewElement() throws CoreException {
+		// TODO implement this method, it's used for updating selection on new element
+		return null;
+	}
+	
+//	private void computeNameMatches(IProgressMonitor pm) throws CoreException {
+//	
+//	    IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
+//	    try {
+//			URL fileURL = Platform.resolve(new URL(fNamedComponent.getSchema().getSchemaLocation()));
+//			IFile file = workspaceRoot.getFileForLocation(new Path(fileURL.getPath()));
+//			if (fNameSearchResult == null)
+//				fNameSearchResult= new QualifiedNameSearchResult();
+//			QualifiedNameFinder.process(fNameSearchResult, getNamedComponent().getName(),  
+//				getNewElementName(), 
+//				"*.xsd", file.getProject(), pm);
+//		} catch (IOException e) {
+//			// TODO Auto-generated catch block
+//			e.printStackTrace();
+//		}
+//	}
+	
+	public final RefactoringParticipant[] loadParticipants(RefactoringStatus status, SharableParticipants sharedParticipants) throws CoreException {
+		RenameArguments arguments= new RenameArguments(getNewElementName(), true);
+		String[] natures= getAffectedProjectNatures();
+		List result= new ArrayList();
+		loadElementParticipants(status, result, arguments, natures, sharedParticipants);
+		loadDerivedParticipants(status, result, natures, sharedParticipants);
+		return (RefactoringParticipant[])result.toArray(new RefactoringParticipant[result.size()]);
+	}
+	
+	protected void loadElementParticipants(RefactoringStatus status, List result, RenameArguments arguments, String[] natures, SharableParticipants shared) throws CoreException {
+		Object[] elements= getElements();
+		for (int i= 0; i < elements.length; i++) {
+			result.addAll(Arrays.asList(ParticipantManager.loadRenameParticipants(status, 
+				this,  elements[i],
+				arguments, natures, shared)));
+		}
+	}
+	
+	
+	public void setNewElementName(String newName) {
+		
+		fNewElementName= newName;
+	}
+
+	public String getNewElementName() {
+		return fNewElementName;
+	}
+
+	public String getCurrentElementName() {
+		// TODO Auto-generated method stub
+		return fNewElementName;
+	}
+	
+	
+}
diff --git a/development/org.eclipse.wst.sse.unittests/.classpath b/development/org.eclipse.wst.sse.unittests/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/development/org.eclipse.wst.sse.unittests/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/development/org.eclipse.wst.sse.unittests/.cvsignore b/development/org.eclipse.wst.sse.unittests/.cvsignore
deleted file mode 100644
index a37b9c5..0000000
--- a/development/org.eclipse.wst.sse.unittests/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin
-build.properties
-build.xml
-ssejunit.jar
-temp.folder
diff --git a/development/org.eclipse.wst.sse.unittests/.project b/development/org.eclipse.wst.sse.unittests/.project
deleted file mode 100644
index e6f5109..0000000
--- a/development/org.eclipse.wst.sse.unittests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.sse.unittests</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/development/org.eclipse.wst.sse.unittests/.settings/org.eclipse.jdt.core.prefs b/development/org.eclipse.wst.sse.unittests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index c1373fb..0000000
--- a/development/org.eclipse.wst.sse.unittests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,58 +0,0 @@
-#Mon May 30 19:10:44 EDT 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
-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=warning
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-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.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/development/org.eclipse.wst.sse.unittests/.settings/org.eclipse.pde.prefs b/development/org.eclipse.wst.sse.unittests/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 498dec4..0000000
--- a/development/org.eclipse.wst.sse.unittests/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Fri May 27 23:41:23 EDT 2005
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/development/org.eclipse.wst.sse.unittests/META-INF/MANIFEST.MF b/development/org.eclipse.wst.sse.unittests/META-INF/MANIFEST.MF
deleted file mode 100644
index 20c3b77..0000000
--- a/development/org.eclipse.wst.sse.unittests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,37 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Unittests
-Bundle-SymbolicName: org.eclipse.wst.sse.unittests; singleton:=true
-Bundle-Version: 0.7.0
-Bundle-ClassPath: sseunittests.jar
-Bundle-Vendor: Eclipse.org
-Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.sse.unittests
-Require-Bundle: org.junit,
- org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.jst.jsp.core.tests,
- org.eclipse.jst.jsp.tests.encoding,
- org.eclipse.jst.jsp.ui.tests,
- org.eclipse.jst.jsp.ui.tests.performance,
- org.eclipse.wst.css.core.tests,
- org.eclipse.wst.css.tests.encoding,
- org.eclipse.wst.css.ui.tests.performance,
- org.eclipse.wst.dtd.ui.tests,
- org.eclipse.wst.html.core.tests,
- org.eclipse.wst.html.tests.encoding,
- org.eclipse.wst.html.ui.tests,
- org.eclipse.wst.html.ui.tests.performance,
- org.eclipse.wst.sse.core.tests,
- org.eclipse.wst.sse.ui.tests,
- org.eclipse.wst.sse.ui.tests.performance,
- org.eclipse.wst.xml.core.tests,
- org.eclipse.wst.xml.tests.encoding,
- org.eclipse.wst.xml.ui.tests,
- org.eclipse.wst.xml.ui.tests.performance,
- org.eclipse.wst.xml.validation.tests,
- org.eclipse.wst.xml.ui,
- org.eclipse.wst.javascript.ui,
- org.eclipse.wst.xsd.validation.tests,
- org.eclipse.wst.css.ui.tests,
- org.eclipse.wst.sse.ui
diff --git a/development/org.eclipse.wst.sse.unittests/icons/sourceEditor.gif b/development/org.eclipse.wst.sse.unittests/icons/sourceEditor.gif
deleted file mode 100644
index 75ebdb8..0000000
--- a/development/org.eclipse.wst.sse.unittests/icons/sourceEditor.gif
+++ /dev/null
Binary files differ
diff --git a/development/org.eclipse.wst.sse.unittests/plugin.properties b/development/org.eclipse.wst.sse.unittests/plugin.properties
deleted file mode 100644
index 535a870..0000000
--- a/development/org.eclipse.wst.sse.unittests/plugin.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2004 IBM Corporation 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:
-#     IBM Corporation - initial API and implementation
-#     
-###############################################################################
-XML_Source_Page_Editor.name=XML Source Page Editor
-JavaScript_Source_Page_Editor.name=JavaScript Source Page Editor
-
diff --git a/development/org.eclipse.wst.sse.unittests/plugin.xml b/development/org.eclipse.wst.sse.unittests/plugin.xml
deleted file mode 100644
index c869906..0000000
--- a/development/org.eclipse.wst.sse.unittests/plugin.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-        <extension point="org.eclipse.ui.editors">
-                <editor
-                        name="%XML_Source_Page_Editor.name"
-                        icon="icons/sourceEditor.gif"
-                        contributorClass="org.eclipse.wst.xml.ui.internal.actions.ActionContributorXML"
-                        class="org.eclipse.wst.sse.ui.StructuredTextEditor"
-                        symbolicFontName="org.eclipse.wst.sse.ui.textfont"
-                        id="org.eclipse.core.runtime.xml.source">
-                        <contentTypeBinding
-                                contentTypeId="org.eclipse.core.runtime.xml" />
-                        <contentTypeBinding
-                                contentTypeId="org.eclipse.wst.xml.core.xmlsource" />
-                </editor>
-        </extension>
-        	<extension point="org.eclipse.ui.editors">
-		<editor
-			name="%JavaScript_Source_Page_Editor.name"
-			icon="icons/sourceEditor.gif"
-			extensions="js"
-			contributorClass="org.eclipse.wst.javascript.ui.internal.actions.ActionContributorJS"
-			class="org.eclipse.wst.javascript.ui.internal.editor.JSEditor"
-			symbolicFontName="org.eclipse.wst.sse.ui.textfont"
-			id="org.eclipse.wst.javascript.core.javascriptsource.source">
-			<contentTypeBinding
-				contentTypeId="org.eclipse.wst.javascript.core.javascriptsource" />
-		</editor>
-	</extension>
-</plugin>
\ No newline at end of file
diff --git a/development/org.eclipse.wst.sse.unittests/src/org/eclipse/wst/sse/unittests/MasterListTestSuite.java b/development/org.eclipse.wst.sse.unittests/src/org/eclipse/wst/sse/unittests/MasterListTestSuite.java
deleted file mode 100644
index a2ea5b3..0000000
--- a/development/org.eclipse.wst.sse.unittests/src/org/eclipse/wst/sse/unittests/MasterListTestSuite.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.sse.unittests;
-
-import junit.framework.TestSuite;
-
-import org.eclipse.jst.jsp.core.tests.JSPCoreTestSuite;
-import org.eclipse.jst.jsp.tests.encoding.JSPEncodingTestSuite;
-import org.eclipse.jst.jsp.ui.tests.JSPUITestSuite;
-import org.eclipse.wst.css.core.tests.CSSCoreTestSuite;
-import org.eclipse.wst.css.tests.encoding.CSSEncodingTestSuite;
-import org.eclipse.wst.css.ui.tests.CSSUITestSuite;
-import org.eclipse.wst.dtd.ui.tests.DTDUITestSuite;
-import org.eclipse.wst.html.core.tests.HTMLCoreTestSuite;
-import org.eclipse.wst.html.tests.encoding.HTMLEncodingTestSuite;
-import org.eclipse.wst.html.ui.tests.HTMLUITestSuite;
-import org.eclipse.wst.sse.core.tests.SSEModelTestSuite;
-import org.eclipse.wst.sse.ui.tests.SSEUITestSuite;
-import org.eclipse.wst.xml.core.tests.SSEModelXMLTestSuite;
-import org.eclipse.wst.xml.tests.encoding.EncodingTestSuite;
-import org.eclipse.wst.xml.ui.tests.XMLUITestSuite;
-import org.eclipse.wst.xml.validation.tests.internal.AllXMLTests;
-import org.eclipse.wst.xsd.validation.tests.internal.AllXSDTests;
-
-/*****************************************************************************
- * Copyright (c) 2004 IBM Corporation 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: IBM Corporation - initial API and implementation
- * 
- ****************************************************************************/
-
-public class MasterListTestSuite extends TestSuite {
-
-	public MasterListTestSuite() {
-		super("All Tests");
-		
-		System.setProperty("wtp.autotest.noninteractive", "true");
-
-		addTest(SSEModelTestSuite.suite());
-		addTest(SSEModelXMLTestSuite.suite());
-		addTest(CSSCoreTestSuite.suite());
-		addTest(HTMLCoreTestSuite.suite());
-		addTest(JSPCoreTestSuite.suite());
-
-		addTest(AllXMLTests.suite());
-		
-		addTest(EncodingTestSuite.suite());
-		addTest(CSSEncodingTestSuite.suite());
-		addTest(HTMLEncodingTestSuite.suite());
-		addTest(JSPEncodingTestSuite.suite());
-
-		addTest(CSSUITestSuite.suite());
-		addTest(HTMLUITestSuite.suite());
-		addTest(SSEUITestSuite.suite());
-		addTest(XMLUITestSuite.suite());
-		addTest(DTDUITestSuite.suite());
-		addTest(JSPUITestSuite.suite());
-		
-		addTest(AllXSDTests.suite());
-		//addTest(RegressionBucket.suite());
-		//addTest(AllTestCases.suite());
-
-	}
-
-	public void testAll() {
-		// this method needs to exist, but doesn't really do anything
-		// other than to signal to create an instance of this class.
-		// The rest it automatic from the tests added in constructor. 
-	}
-}
diff --git a/development/org.eclipse.wst.sse.unittests/src/org/eclipse/wst/sse/unittests/MasterPerformanceTestSuite.java b/development/org.eclipse.wst.sse.unittests/src/org/eclipse/wst/sse/unittests/MasterPerformanceTestSuite.java
deleted file mode 100644
index 8491014..0000000
--- a/development/org.eclipse.wst.sse.unittests/src/org/eclipse/wst/sse/unittests/MasterPerformanceTestSuite.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.sse.unittests;
-
-import junit.framework.TestSuite;
-
-import org.eclipse.jst.jsp.ui.tests.performance.JSPUIPerformanceTests;
-import org.eclipse.wst.css.ui.tests.performance.CSSUIPerformanceTestSuite;
-import org.eclipse.wst.html.ui.tests.performance.HTMLUIPerformanceTestSuite;
-import org.eclipse.wst.sse.ui.tests.performance.SSEUIPerformanceTestSuite;
-import org.eclipse.wst.xml.ui.tests.performance.XMLUIPerformanceTestSuite;
-
-/*****************************************************************************
- * Copyright (c) 2004 IBM Corporation 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: IBM Corporation - initial API and implementation
- * 
- ****************************************************************************/
-
-public class MasterPerformanceTestSuite extends TestSuite {
-
-	public MasterPerformanceTestSuite() {
-		super("All Tests");
-
-		addTest(JSPUIPerformanceTests.suite());
-		addTest(CSSUIPerformanceTestSuite.suite());
-		addTest(HTMLUIPerformanceTestSuite.suite());
-		addTest(SSEUIPerformanceTestSuite.suite());
-		addTest(XMLUIPerformanceTestSuite.suite());
-
-
-	}
-
-	public void testAll() {
-		// this method needs to exist, but doesn't really do anything
-	}
-
-}
diff --git a/development/org.eclipse.wst.sse.unittests/src/org/eclipse/wst/sse/unittests/minortools/TestStringUtils.java b/development/org.eclipse.wst.sse.unittests/src/org/eclipse/wst/sse/unittests/minortools/TestStringUtils.java
deleted file mode 100644
index 300d5e5..0000000
--- a/development/org.eclipse.wst.sse.unittests/src/org/eclipse/wst/sse/unittests/minortools/TestStringUtils.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.sse.unittests.minortools;
-
-
-
-public class TestStringUtils {
-
-	/**
-	 * TestStringUtils constructor comment.
-	 */
-	private TestStringUtils() {
-		super();
-	}
-
-	/**
-	 * Replace matching literal portions of a string with another string
-	 */
-	public static String replace(String aString, String source, String target) {
-		if (aString == null)
-			return null;
-		String normalString = ""; //$NON-NLS-1$
-		int length = aString.length();
-		int position = 0;
-		int previous = 0;
-		int spacer = source.length();
-		while (position + spacer - 1 < length && aString.indexOf(source, position) > -1) {
-			position = aString.indexOf(source, previous);
-			normalString = normalString + aString.substring(previous, position) + target;
-			position += spacer;
-			previous = position;
-		}
-		normalString = normalString + aString.substring(position, aString.length());
-
-		return normalString;
-	}
-
-}
\ No newline at end of file
diff --git a/development/org.eclipse.wst.sse.unittests/src/org/eclipse/wst/sse/unittests/minortools/VersionRemover.java b/development/org.eclipse.wst.sse.unittests/src/org/eclipse/wst/sse/unittests/minortools/VersionRemover.java
deleted file mode 100644
index 811a668..0000000
--- a/development/org.eclipse.wst.sse.unittests/src/org/eclipse/wst/sse/unittests/minortools/VersionRemover.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation 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:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.sse.unittests.minortools;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-
-import org.eclipse.wst.xml.core.tests.util.CommonXML;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.SAXException;
-
-
-
-/**
- * Modifies plugin.xml and fragment.xml files to not require specific versions
- * of their plugin dependencies.
- * 
- * @author nitin
- */
-public class VersionRemover {
-
-	char[] charbuff = new char[2048];
-	StringBuffer s = null;
-
-	public VersionRemover() {
-		super();
-	}
-
-
-
-	public static void main(String[] args) {
-		if (args.length < 1)
-			new VersionRemover().visit(new File("d:/target"));
-		else
-			new VersionRemover().visit(new File(args[0]));
-	}
-
-
-
-	protected void visit(File file) {
-		// Skip directories like org.eclipse.*, org.apache.*, and org.junit.*
-		if (file.isDirectory() && !file.getName().startsWith("org.eclipse.") && !file.getName().startsWith("org.apache") && !file.getName().startsWith("org.junit")) {
-			String[] contents = file.list();
-			for (int i = 0; i < contents.length; i++)
-				visit(new File(file.getAbsolutePath() + '/' + contents[i]));
-		}
-		else {
-			fixupFile(file);
-		}
-	}
-
-	protected void fixupFile(File file) {
-		// only load and fixup files named plugin.xml or fragment.xml under eclipse\plugins\XXXXXXX.*
-		if (!(file.getName().equalsIgnoreCase("plugin.xml") || file.getName().equalsIgnoreCase("fragment.xml")) || file.getAbsolutePath().indexOf("eclipse\\plugins\\XXXXXXX.") == -1)
-			return;
-		//		System.out.println(file.getAbsolutePath());
-		try {
-			Document doc = CommonXML.getDocumentBuilder().parse(file);
-			NodeList imports = null;
-			if (file.getName().equalsIgnoreCase("plugin.xml"))
-				imports = doc.getElementsByTagName("import");
-			else if (file.getName().equalsIgnoreCase("fragment.xml"))
-				imports = doc.getElementsByTagName("fragment");
-			boolean changed = false;
-			for (int i = 0; i < imports.getLength(); i++) {
-				Node importNode = imports.item(i);
-				if (importNode.getNodeName().equalsIgnoreCase("import") && importNode.getAttributes().getNamedItem("version") != null) {
-					changed = true;
-					importNode.getAttributes().removeNamedItem("version");
-				}
-				if (importNode.getAttributes().getNamedItem("plugin-version") != null) {
-					changed = true;
-					importNode.getAttributes().removeNamedItem("plugin-version");
-				}
-				if (importNode.getAttributes().getNamedItem("match") != null) {
-					importNode.getAttributes().removeNamedItem("match");
-					changed = true;
-				}
-			}
-			if (changed) {
-				FileOutputStream ostream = new FileOutputStream(file.getAbsolutePath());
-				CommonXML.serialize(doc, ostream);
-				ostream.close();
-				System.out.println("Modified " + file.getAbsolutePath());
-			}
-		}
-		catch (SAXException e) {
-			System.err.println(file.getPath() + ": " + e);
-		}
-		catch (IOException e) {
-			System.err.println(file.getPath() + ": " + e);
-		}
-	}
-}
\ No newline at end of file
diff --git a/docs/org.eclipse.jst.jsp.ui.infopop/EditorJspContexts.xml b/docs/org.eclipse.jst.jsp.ui.infopop/EditorJspContexts.xml
index 3abddee..bac1fef 100644
--- a/docs/org.eclipse.jst.jsp.ui.infopop/EditorJspContexts.xml
+++ b/docs/org.eclipse.jst.jsp.ui.infopop/EditorJspContexts.xml
@@ -22,13 +22,13 @@
 </context>
 
 <context id="jspr0010">
-<description>Select this option to open the <b>Refactor Rename</b> dialog, if applicable, which lets you rename the currently selected Java element and references to that element.
+<description>Select this option to open the <b>Rename Resource</b> dialog, if applicable, which lets you rename the currently selected Java element and references to that element.
 </description>
 <topic label="Source editors for markup languages" href="../org.eclipse.wst.sse.doc.user/topics/csrcedt004.html"/>
 <topic label="Editing source code - overview" href="../org.eclipse.wst.sse.doc.user/topics/tsrcedt000.html"/>
 </context>
 <context id="jspr0020">
-<description>Select this option to open the <b>Refactor Move</b> dialog, if applicable, which lets you move the currently selected Java element. For example, you can move a method from one class to another.
+<description>Select this option to open the <b>Move</b> dialog, if applicable, which lets you move the currently selected Java element. For example, you can move a method from one class to another.
 </description>
 <topic label="Source editors for markup languages" href="../org.eclipse.wst.sse.doc.user/topics/csrcedt004.html"/>
 <topic label="Editing source code - overview" href="../org.eclipse.wst.sse.doc.user/topics/tsrcedt000.html"/>
diff --git a/docs/org.eclipse.jst.jsp.ui.infopop/META-INF/MANIFEST.MF b/docs/org.eclipse.jst.jsp.ui.infopop/META-INF/MANIFEST.MF
index 1cc45ad..57c07b0 100644
--- a/docs/org.eclipse.jst.jsp.ui.infopop/META-INF/MANIFEST.MF
+++ b/docs/org.eclipse.jst.jsp.ui.infopop/META-INF/MANIFEST.MF
@@ -2,7 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Plugin.name
 Bundle-SymbolicName: org.eclipse.jst.jsp.ui.infopop; singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: Eclipse.org
+Bundle-Version: 1.0.2.qualifier
+Bundle-Vendor: %Bundle-Vendor.0
 Bundle-Localization: plugin
-Eclipse-AutoStart: true
diff --git a/docs/org.eclipse.jst.jsp.ui.infopop/build.properties b/docs/org.eclipse.jst.jsp.ui.infopop/build.properties
index ce4c693..33cb6c7 100644
--- a/docs/org.eclipse.jst.jsp.ui.infopop/build.properties
+++ b/docs/org.eclipse.jst.jsp.ui.infopop/build.properties
@@ -2,13 +2,12 @@
                EditorJspContexts2.xml,\
                about.html,\
                plugin.xml,\
-               META-INF,\
-               /,\
+               META-INF/,\
                META-INF/,\
                EditorJspContexts2.xml,\
                EditorJspContexts.xml,\
                about.html,\
                plugin.properties,\
-               plugin.xml
-               plugin.properties/
+               plugin.xml,\
+               plugin.properties
 src.includes = build.properties
diff --git a/docs/org.eclipse.jst.jsp.ui.infopop/plugin.properties b/docs/org.eclipse.jst.jsp.ui.infopop/plugin.properties
index fc2e115..138c44e 100644
--- a/docs/org.eclipse.jst.jsp.ui.infopop/plugin.properties
+++ b/docs/org.eclipse.jst.jsp.ui.infopop/plugin.properties
@@ -3,3 +3,5 @@
 # Translation Instruction: section to be translated
 # ==============================================================================
 Plugin.name = JSP tools infopops
+
+Bundle-Vendor.0 = Eclipse.org
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.dtdeditor.doc.user/META-INF/MANIFEST.MF b/docs/org.eclipse.wst.dtdeditor.doc.user/META-INF/MANIFEST.MF
index 7a935a5..d402dcd 100644
--- a/docs/org.eclipse.wst.dtdeditor.doc.user/META-INF/MANIFEST.MF
+++ b/docs/org.eclipse.wst.dtdeditor.doc.user/META-INF/MANIFEST.MF
@@ -2,7 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.dtdeditor.doc.user; singleton:=true
-Bundle-Version: 1.0.1.qualifier
+Bundle-Version: 1.0.2.qualifier
 Bundle-Vendor: %pluginProvider
 Bundle-Localization: plugin
-Eclipse-AutoStart: true
diff --git a/docs/org.eclipse.wst.dtdeditor.doc.user/build.properties b/docs/org.eclipse.wst.dtdeditor.doc.user/build.properties
index 169d040..401fe92 100644
--- a/docs/org.eclipse.wst.dtdeditor.doc.user/build.properties
+++ b/docs/org.eclipse.wst.dtdeditor.doc.user/build.properties
@@ -1,6 +1,5 @@
 bin.includes = DTDEditormap_toc.xml,\
                about.html,\
-               dtdeditor_reference_toc.xml,\
                images/,\
                plugin.properties,\
                plugin.xml,\
diff --git a/docs/org.eclipse.wst.dtdeditor.doc.user/topics/tvaldtd.html b/docs/org.eclipse.wst.dtdeditor.doc.user/topics/tvaldtd.html
index 973982a..a64dc83 100644
--- a/docs/org.eclipse.wst.dtdeditor.doc.user/topics/tvaldtd.html
+++ b/docs/org.eclipse.wst.dtdeditor.doc.user/topics/tvaldtd.html
@@ -46,7 +46,12 @@
 <p>
 <b class="parentlink">Parent topic:</b> <a href="../topics/cworkdtds.html" title="Working with DTDs">Working with DTDs</a><br />
 </p>
-
 </div>
+
+<div><div class="relinfo"><strong>Related information</strong><br />
+<div><a href="../../org.eclipse.jst.j2ee.doc.user/topics/tjval.html" title="General validation information">../../org.eclipse.jst.j2ee.doc.user/topics/tjval.html</a></div>
+</div>
+</div>
+
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.webtools.doc.user/META-INF/MANIFEST.MF b/docs/org.eclipse.wst.webtools.doc.user/META-INF/MANIFEST.MF
index 85561b6..587f6f2 100644
--- a/docs/org.eclipse.wst.webtools.doc.user/META-INF/MANIFEST.MF
+++ b/docs/org.eclipse.wst.webtools.doc.user/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.webtools.doc.user; singleton:=true
-Bundle-Version: 1.0.1.qualifier
+Bundle-Version: 1.0.2.qualifier
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Eclipse-AutoStart: true
diff --git a/docs/org.eclipse.wst.webtools.doc.user/topics/cpdjsps.html b/docs/org.eclipse.wst.webtools.doc.user/topics/cpdjsps.html
index e14e150..86c3c74 100644
--- a/docs/org.eclipse.wst.webtools.doc.user/topics/cpdjsps.html
+++ b/docs/org.eclipse.wst.webtools.doc.user/topics/cpdjsps.html
@@ -20,7 +20,7 @@
 <div><p>The JavaServer Pages technology enables you to generate dynamic web content,
 such as HTML, DHTML, XHTML, and XML files, to include in a Web application.
 JSP files are one way to implement server-side dynamic page content. JSP files
-allow a Web server, such as WebSphere<sup>&reg;</sup> Application Server or Apache Tomcat,
+allow a Web server, such as Apache Tomcat,
 to add content dynamically to your HTML pages before they are sent to a requesting
 browser.</p>
 <p>When you deploy a JSP file to a Web server that provides a servlet engine,
diff --git a/docs/org.eclipse.wst.webtools.doc.user/topics/cwservbn.html b/docs/org.eclipse.wst.webtools.doc.user/topics/cwservbn.html
index 1e4c23b..b398768 100644
--- a/docs/org.eclipse.wst.webtools.doc.user/topics/cwservbn.html
+++ b/docs/org.eclipse.wst.webtools.doc.user/topics/cwservbn.html
@@ -25,7 +25,7 @@
 the server can send the request information to a servlet, so that the servlet
 can construct the response that is sent back to the browser.</p>
 <p>Just as applets run on a Web browser and extend the browser's capabilities,
-servlets run on a Java-enabled Web server, such as the WebSphere<sup>&reg;</sup> Application Server and extend
+servlets run on a Java-enabled Web server and extend
 the server's capabilities. Because of their flexibility and scalability, servlets
 are commonly used to enable businesses to connect databases to the Web.</p>
 <div class="p">Although a servlet can be a completely self-contained program, you can
diff --git a/docs/org.eclipse.wst.webtools.doc.user/topics/twplib.html b/docs/org.eclipse.wst.webtools.doc.user/topics/twplib.html
index 8dbdebd..62e883b 100644
--- a/docs/org.eclipse.wst.webtools.doc.user/topics/twplib.html
+++ b/docs/org.eclipse.wst.webtools.doc.user/topics/twplib.html
@@ -23,18 +23,12 @@
 that contains your Web project, if they are in the Web project's build path,
 and avoid the need to explicitly copy these JAR files into the project's lib
 folder before you publish the Web application to a server.</p>
-<p>Currently,
-Web Library projects are supported only when testing in the WebSphere test
-environment or remotely publishing to a WebSphere<sup>&reg;</sup> Application Server. After
-these associations are made, you must restart and republish the server for
-the changes to take effect.</p>
 <p>To set up these associations:</p>
  </div>
 <ol><li class="stepexpand"><span>Right click on a Web project and select <b>Properties</b> from
 the pop-up menu.</span> </li>
 <li class="stepexpand"><span>Expand <b>J2EE Module Dependencies</b></span></li>
-<li class="stepexpand"><span>Click <b>Web Libraries</b></span></li>
-<li class="stepexpand"><span>Set up your associations in the Web Libraries window</span></li>
+<li class="stepexpand"><span>Set up your associations in the J2EE Module Dependencies window</span></li>
 <li class="stepexpand"><span>Click <span><b>OK</b></span> when you are done.</span></li>
 </ol>
 </div>
diff --git a/docs/org.eclipse.wst.xmleditor.doc.user/META-INF/MANIFEST.MF b/docs/org.eclipse.wst.xmleditor.doc.user/META-INF/MANIFEST.MF
index 70b9e74..3c9efb7 100644
--- a/docs/org.eclipse.wst.xmleditor.doc.user/META-INF/MANIFEST.MF
+++ b/docs/org.eclipse.wst.xmleditor.doc.user/META-INF/MANIFEST.MF
@@ -2,7 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.xmleditor.doc.user; singleton:=true
-Bundle-Version: 1.0.1.qualifier
+Bundle-Version: 1.0.2.qualifier
 Bundle-Vendor: %pluginProvider
 Bundle-Localization: plugin
-Eclipse-AutoStart: true
diff --git a/docs/org.eclipse.wst.xmleditor.doc.user/XMLBuildermap_toc.xml b/docs/org.eclipse.wst.xmleditor.doc.user/XMLBuildermap_toc.xml
index ce59f82..426af2f 100644
--- a/docs/org.eclipse.wst.xmleditor.doc.user/XMLBuildermap_toc.xml
+++ b/docs/org.eclipse.wst.xmleditor.doc.user/XMLBuildermap_toc.xml
@@ -25,6 +25,8 @@
                   <topic label="XML and HTML encodings" href="topics/cxmlenc.html"/>
                </topic>
             </topic>
+	   <topic label="Setting the XML source suggestion strategy used by content assist" href="topics/tsugstrat.html"
+         </topic>
          </topic>
          <topic label="Editing in the Design view" href="topics/txedtdes.html">
             <topic label="Editing DOCTYPE declarations" href="topics/tedtdoc.html"/>
diff --git a/docs/org.eclipse.wst.xmleditor.doc.user/topics/tsugstrat.html b/docs/org.eclipse.wst.xmleditor.doc.user/topics/tsugstrat.html
new file mode 100644
index 0000000..f076f67
--- /dev/null
+++ b/docs/org.eclipse.wst.xmleditor.doc.user/topics/tsugstrat.html
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html lang="en-us" xml:lang="en-us">
+<head>
+<!-- /*******************************************************************************
+ * Copyright (c) 2000, 2006 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/ -->
+<link rel="stylesheet" type="text/css" href="../../org.eclipse.wst.doc.user/common.css" />
+<title>Setting the XML source suggestion strategy used by content assist</title>
+</head>
+<body id="xmlsourcesuggestionstrategy"><a name="xmlsourcesuggestionstrategy"><!-- --></a>
+<h1 class="topictitle1">Setting the XML source suggestion strategy used by content assist</h1>
+<div><p>You can customize the formatting of the suggestions given by content
+assist by choosing a suggestion strategy preference. When the suggestion strategy
+is set to "Strict", suggestions that are 'strictly' grammatically valid will
+be displayed first in the list of options and highlighted by bold icons. Other
+suggestions that are applicable to this element's scope but are not grammatically
+valid, will be displayed lower in the list with de-emphasized icons. When
+the suggestion strategy is set to "Lax", all suggestions will displayed in
+the list with de-emphasized icons.</p>
+<div class="section">To set the suggestion strategy used by content assist:</div>
+<ol><li><span>From the menu bar, Click <span class="menucascade"><span class="uicontrol">Window</span> &gt; <span class="uicontrol">Preferences</span></span></span></li>
+<li><span>Select <span class="menucascade"><span class="uicontrol">Web and XML</span> &gt; <span class="uicontrol">XML
+Files</span> &gt; <span class="uicontrol">XML Source</span></span>.</span></li>
+<li><span>Beside Suggestion strategy in the Content assist section, select
+the appropriate setting (for example, <span class="uicontrol">Strict</span>.</span></li>
+</ol>
+<div class="example"><p>The following screen capture demonstrates content assist with
+teh suggestion strategy set to "Strict":</p>
+<br /><img src="../images/suggestion.gif" alt="Example of Strict Suggestion Strategy" /><br /></div>
+</div>
+</body>
+</html>
diff --git a/docs/org.eclipse.wst.xmleditor.doc.user/topics/twxvalid.html b/docs/org.eclipse.wst.xmleditor.doc.user/topics/twxvalid.html
index b7f8d12..af3779a 100644
--- a/docs/org.eclipse.wst.xmleditor.doc.user/topics/twxvalid.html
+++ b/docs/org.eclipse.wst.xmleditor.doc.user/topics/twxvalid.html
@@ -59,5 +59,11 @@
 <a href="../topics/cwxmledt.html" title="The XML editor is a tool for creating and viewing XML files">XML editor</a><br />
 </p>
 </div>
+
+<div><div class="relinfo"><strong>Related information</strong><br />
+<div><a href="../../org.eclipse.jst.j2ee.doc.user/topics/tjval.html" title="General validation information">../../org.eclipse.jst.j2ee.doc.user/topics/tjval.html</a></div>
+</div>
+</div>
+
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xsdeditor.doc.user/META-INF/MANIFEST.MF b/docs/org.eclipse.wst.xsdeditor.doc.user/META-INF/MANIFEST.MF
index 6539516..81fc212 100644
--- a/docs/org.eclipse.wst.xsdeditor.doc.user/META-INF/MANIFEST.MF
+++ b/docs/org.eclipse.wst.xsdeditor.doc.user/META-INF/MANIFEST.MF
@@ -2,7 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Plugin.name
 Bundle-SymbolicName: org.eclipse.wst.xsdeditor.doc.user; singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: Eclipse.org
+Bundle-Version: 1.0.2.qualifier
+Bundle-Vendor: %Bundle-Vendor.0
 Bundle-Localization: plugin
-Eclipse-AutoStart: true
diff --git a/docs/org.eclipse.wst.xsdeditor.doc.user/build.properties b/docs/org.eclipse.wst.xsdeditor.doc.user/build.properties
index b9ce6e5..5802614 100644
--- a/docs/org.eclipse.wst.xsdeditor.doc.user/build.properties
+++ b/docs/org.eclipse.wst.xsdeditor.doc.user/build.properties
@@ -4,6 +4,5 @@
                plugin.properties,\
                plugin.xml,\
                topics/,\
-               xsdeditor_reference_toc.xml,\
                META-INF/
 src.includes = build.properties
diff --git a/docs/org.eclipse.wst.xsdeditor.doc.user/images/Browse.gif b/docs/org.eclipse.wst.xsdeditor.doc.user/images/Browse.gif
new file mode 100644
index 0000000..ca202e3
--- /dev/null
+++ b/docs/org.eclipse.wst.xsdeditor.doc.user/images/Browse.gif
Binary files differ
diff --git a/docs/org.eclipse.wst.xsdeditor.doc.user/plugin.properties b/docs/org.eclipse.wst.xsdeditor.doc.user/plugin.properties
index 45279a5..4b1a11a1 100644
--- a/docs/org.eclipse.wst.xsdeditor.doc.user/plugin.properties
+++ b/docs/org.eclipse.wst.xsdeditor.doc.user/plugin.properties
@@ -1 +1,3 @@
 Plugin.name = XML schema editor
+
+Bundle-Vendor.0 = Eclipse.org
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/rrefintg.html b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/rrefintg.html
index 8c33e5f..391b490 100644
--- a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/rrefintg.html
+++ b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/rrefintg.html
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
-  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<?xml version="1.0" encoding="utf-8"?>
+<!--Arbortext, Inc., 1988-2005, v.4002-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html>
 <head>
 <!-- /*******************************************************************************
@@ -13,80 +14,39 @@
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/ -->
-<link rel="stylesheet" type="text/css" href="../../org.eclipse.wst.doc.user/common.css" />
+<link href="../../org.eclipse.wst.doc.user/common.css" rel="stylesheet" type="text/css"/>
 <title>Referential integrity</title>
 </head>
-<body id="rrefintg"><a name="rrefintg"><!-- --></a>
-
-<h1 class="topictitle1">Referential integrity in the XML schema editor</h1>
-<div><p>The XML schema editor has a built-in mechanism to handle referential
-integrity issues. When you delete certain nodes, clean up for any nodes affected
-will automatically occur.</p>
-<div><p>When you define a complex type, you can add a content model to
-it and reference a global element. </p><div class="skipspace"><div class="p">For example:<pre>&lt;schema&gt;
+<body id="rrefintg"><a name="rrefintg"><!-- --></a>  <h1 class="topictitle1">Referential
+integrity in the XML schema editor</h1> <div><p>The XML schema editor has
+a built-in mechanism to handle referential integrity issues. When you delete
+certain nodes, clean up for any nodes affected will automatically occur.</p> <div><p>When
+you define a complex type, you can add a content model to it and reference
+a global element. </p><div class="skipspace"><div class="p">For example:<pre>&lt;schema&gt;
  &lt;element name="comment" type="string"&gt;
  &lt;complexType name="Items"&gt;
  &lt;sequence&gt;
  &lt;element ref="comment"&gt;
  &lt;/sequence&gt;
  &lt;/complexType&gt;
-&lt;/schema&gt;</pre>
-</div>
-<p>If the global element (comment) was deleted,
+&lt;/schema&gt;</pre> </div> <p>If the global element (comment) was deleted,
 all references to it would be in error. However, when you delete the global
-element, the XML schema editor will clean up using the following algorithm:</p>
-<ul><li>If there are one or more global elements in the schema, it will change
+element, the XML schema editor will clean up using the following algorithm:</p> <ul>
+<li>If there are one or more global elements in the schema, it will change
 all existing references to the first global element.</li>
 <li>If there is no global element, then it will delete the element reference
 from the content model.</li>
-</ul>
-<p>Similar cleanup operations are performed when other types of objects
-are deleted.  The following lists describes various cleanup operations. </p>
-<p>Deleting
-a global attribute will cause the following cleanup:</p>
-<ul><li>Any item that references the deleted global attribute will be reset using
-the preceding algorithm.</li>
-</ol>
-		</ul>
-		<p>Deleting a complex type will cause the following cleanup:</p>
-		<ul>
-			<li>Any element type that is set to the deleted complex type will be reset
-to the <tt class="sysout">string</tt> type.</li>
-			<li>Any complex type that derives from the deleted complex type will be reset
-to no derivation.</li>
-		</ul>
-		<p>Deleting a simple type will cause the following cleanup:</p>
-		<ul>
-			<li>Any attribute type that is set to the deleted simple type will be reset
-to the  <tt class="sysout">string</tt> type.</li>
-			<li>Any element type that is set to the deleted simple type will be reset
-to the  <tt class="sysout">string</tt> type.</li>
-			<li>Any simple type that derives from the deleted simple type will be reset
-to  <tt class="sysout">string</tt> as its base type.</li>
-		</ul>
-		<p>Deleting a group or attribute group will cause the following cleanup:</p>
-		<ul>
-			<li>Any complex type that references the deleted group or attribute group
-will be reset using the algorithm similar to the one described earlier for
-deleted global elements.</li>
-		</ul>
-</div>
-<div class="section"><h4 class="sectiontitle">Deleting included and imported schema</h4><div class="p">If an included
-or imported schema is deleted, you must manually reset the following type
-references as appropriate: <ul><li>Global element and element's type</li>
+</ul> </div> <div class="section"><h4 class="sectiontitle">Deleting included
+and imported schema</h4><div class="p">If an included or imported schema is
+deleted, you must manually reset the following type references as appropriate: <ul>
+<li>Global element and element's type</li>
 <li>Attribute type</li>
 <li>Complex type derivation</li>
 <li>Simple type derivation</li>
-</ul>
-They will not automatically be reset if an included or imported schema
-is deleted.</div>
-</div>
-</div>
-<p><div class="relconcepts"><strong>Related concepts</strong><br />
-<div><a href="../topics/cxmlsced.html" title="XML schemas are an XML language for describing and constraining the content of XML files.">XML schema editor</a></div>
-</p>
-<p class="reltasks"><strong>Related tasks</strong><br />
-<div><a href="../topics/tedtschm.html" title="After you create an XML schema, you can edit its various properties, such as its namespace and prefix.">Editing XML schema properties</a></div>
-</div>
-</p></body>
-</html>
\ No newline at end of file
+</ul> They will not automatically be reset if an included or imported schema
+is deleted.</div> </div> </div> <p><div class="relconcepts"><strong>Related
+concepts</strong><br/> <div><a href="../topics/cxmlsced.html" title="XML schemas are an XML language for describing and constraining the content of XML files."
+>XML schema editor</a></div> </div></p> <p class="reltasks"><strong>Related
+tasks</strong><br/> <div><a href="../topics/tedtschm.html" title="After you create an XML schema, you can edit its various properties, such as its namespace and prefix."
+>Editing XML schema properties</a></div> </p></div> <p></p></body>
+</html>
diff --git a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddagrp.html b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddagrp.html
index 22106ed..00feb1d 100644
--- a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddagrp.html
+++ b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddagrp.html
@@ -39,7 +39,7 @@
 view, click <b> <span class="uicontrol">Add Attribute</span></b>.</span> The attribute
 appears below the attribute group in the Outline view.<ol type="a"><li class="skipspace"><span>Select the attribute, and in the Properties view, type the 
 	<b> <span class="uicontrol">Name</span></b> of it.</span></li>
-<li><span>Click the <b> <span class="uicontrol">More</span></b> <img src="../images/More.gif" alt="This graphic is the More button" /> button and specify the
+<li><span>Click the <b> <span class="uicontrol">Browse</span></b> <img src="../images/Browse.gif" alt="This graphic is the Browse button" /> button and specify the
 type for the attribute. The</span>&nbsp; Set Type dialog lists all built-in and 
 user-defined types currently available. You can change the <b>
 <span class="uicontrol">Scope</span></b> of the list by selecting one of the 
diff --git a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddcmxt.html b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddcmxt.html
index a8fc3a2..2475061 100644
--- a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddcmxt.html
+++ b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddcmxt.html
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
-  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<?xml version="1.0" encoding="utf-8"?>
+<!--Arbortext, Inc., 1988-2005, v.4002-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html>
 <head>
 <!-- /*******************************************************************************
@@ -13,131 +14,134 @@
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/ -->
-<link rel="stylesheet" type="text/css" href="../../org.eclipse.wst.doc.user/common.css" />
+<link href="../../org.eclipse.wst.doc.user/common.css" rel="stylesheet" type="text/css"/>
 <title>Adding a complex type</title>
 </head>
-<body id="taddcmxt"><a name="taddcmxt"><!-- --></a>
-
-<h1 class="topictitle1">Adding complex types</h1>
-<div><p>A complex type allows elements in its content and can carry attributes.
-Complex types can be used to help determine the appropriate content for any
-instance documents generated from or associated with your XML schema.</p>
-<div class="section"><p>You can add as many complex types as you want to an XML schema.</p>
-<p>The following instructions were written for the Resource perspective, but 
-they will also work in many other perspectives.</p>
-<p>To
-add a complex type to an XML schema, follow these steps:</p>
-</div>
-<ol><li class="skipspace"><span>Open your XML schema in the XML schema editor.</span></li>
+<body id="taddcmxt"><a name="taddcmxt"><!-- --></a>  <h1 class="topictitle1">Adding
+complex types</h1> <div><p>A complex type allows elements in its content and
+can carry attributes. Complex types can be used to help determine the appropriate
+content for any instance documents generated from or associated with your
+XML schema.</p> <div class="section"><p>You can add as many complex types
+as you want to an XML schema.</p> <p>The following instructions were written
+for the Resource perspective, but  they will also work in many other perspectives.</p> <p>To
+add a complex type to an XML schema, follow these steps:</p> </div> <ol>
+<li class="skipspace"><span>Open your XML schema in the XML schema editor.</span></li>
 <li class="skipspace"><span>In the Outline view, select your schema.</span></li>
-<li class="skipspace"><span>In the Graph view, right click in the <b>Types</b> section and
-click <b> <span class="uicontrol">Add Complex Type</span></b>.</span></li>
-<li class="skipspace"><span>In the Properties view, type a new name for the complex type in
-the <b> <span class="uicontrol">Name</span></b> field.</span></li>
-<li class="skipspace"><span>Click the <b> <span class="uicontrol">More</span></b> button 
-<img border="0" src="../images/More.gif" width="22" height="18"> to select a base type
-for your complex type.</span> You can either set a base type for your
-complex type, or you add a content model to it (which represents any data
-that may be contained inside an element), but you cannot do both. For more
-information about content models, refer to the related tasks.</li>
-<li class="stepexpand"><span>Select <span class="uicontrol">restriction</span> or <span class="uicontrol">extension</span> from
-the <span class="uicontrol">Derived by</span> list.</span> This specifies whether
-your type is derived from its base type by restriction or extension.</li>
-<li class="skipspace"><span>Click the <b> <span class="uicontrol">Other</span></b> tab.</span> The following
-optional values can be specified in this page:<ol type="a"><li class="skipspace"><span>Select the appropriate value in the 
-	<b> <span class="uicontrol">abstract</span></b> list.</span> When a complex type is declared abstract, it cannot be used in an instance
-document. Click <b>true</b> if you want the complex type to be abstract; otherwise,
-click <b>false</b>.</li>
-<li class="skipspace"><span>Select the appropriate value in the <b> <span class="uicontrol">block</span></b> list.</span> If you select <b>#all</b>, the complex type may not be replaced by any
-derivations. If you select <b>extension</b>, the complex type may not be replaced
-by any type derived from it by extending it. If you select <b>restriction</b>,
-the complex type may not be replaced by any type derived from it by restricting
-it.</li>
-<li class="skipspace"><span> Select the appropriate value in the <b> <span class="uicontrol">final</span></b> list.</span> If you select <b>#all</b>, the complex type may not be derived from
-at all. If you select <b>extension</b>, the complex type may not be derived
-from by extension. If you select <b>restriction</b>, the complex type may
-not be derived from by restriction.</li>
-<li class="skipspace"><span>Select the appropriate value in the <b> <span class="uicontrol">mixed</span></b> list.</span> If you click <b>true</b>, the complex type can contain mixed content
-(both character data and other elements). If you click <b>false</b>, the complex
-type can only contain other elements.</li>
-</ol>
-</li>
+<li class="skipspace"><span>In the Graph view, right click in the <b>Types</b> section
+and click <b> <span class="uicontrol">Add Complex Type</span></b>.</span></li>
+<li class="skipspace"><span>In the Properties view, type a new name for the
+complex type in the <b> <span class="uicontrol">Name</span></b> field.</span></li>
+<li class="skipspace"><span>Click the <b> <span class="uicontrol">Browse</span></b> button
+ <img border="0" height="18" src="../images/Browse.gif" width="22"/> to select
+a base type for your complex type.</span> You can either set a base type for
+your complex type, or you add a content model to it (which represents any
+data that may be contained inside an element), but you cannot do both. For
+more information about content models, refer to the related tasks.</li>
+<li class="stepexpand"><span>Select <span class="uicontrol">restriction</span> or <span
+class="uicontrol">extension</span> from the <span class="uicontrol">Derived
+by</span> list.</span> This specifies whether your type is derived from its
+base type by restriction or extension.</li>
+<li class="skipspace"><span>Click the <b> <span class="uicontrol">Other</span></b> tab.</span> The
+following optional values can be specified in this page:<ol type="a">
+<li class="skipspace"><span>Select the appropriate value in the  	<b> <span
+class="uicontrol">abstract</span></b> list.</span> When a complex type is
+declared abstract, it cannot be used in an instance document. Click <b>true</b> if
+you want the complex type to be abstract; otherwise, click <b>false</b>.</li>
+<li class="skipspace"><span>Select the appropriate value in the <b> <span
+class="uicontrol">block</span></b> list.</span> If you select <b>#all</b>,
+the complex type may not be replaced by any derivations. If you select <b>extension</b>,
+the complex type may not be replaced by any type derived from it by extending
+it. If you select <b>restriction</b>, the complex type may not be replaced
+by any type derived from it by restricting it.</li>
+<li class="skipspace"><span> Select the appropriate value in the <b> <span
+class="uicontrol">final</span></b> list.</span> If you select <b>#all</b>,
+the complex type may not be derived from at all. If you select <b>extension</b>,
+the complex type may not be derived from by extension. If you select <b>restriction</b>,
+the complex type may not be derived from by restriction.</li>
+<li class="skipspace"><span>Select the appropriate value in the <b> <span
+class="uicontrol">mixed</span></b> list.</span> If you click <b>true</b>,
+the complex type can contain mixed content (both character data and other
+elements). If you click <b>false</b>, the complex type can only contain other
+elements.</li>
+</ol> </li>
 <li class="skipspace"><span>Click the <b> <span class="uicontrol">Attributes</span></b> tab.</span> You
 can use this page to add attributes, attribute references, attributes group
-references, and <samp class="codeph">any</samp> attributes to your complex type.</li>
-<li class="skipspace"><span>An attribute associates an attribute name with a specific type
-and value. To add an attribute, right-click in the Attributes page, and click <b> <span class="uicontrol">Add
-Attribute</span></b>.</span> You can specify the following values for
-an attribute<ul><li><b><span class="uicontrol">fixed/default</span></b>. Click the 
-	<b> <span class="uicontrol">More</span></b> button <span>
-	<img border="0" src="../images/More.gif" width="22" height="18"></span> 
-and select the <b> <span class="uicontrol">Fixed</span></b> or <b> <span class="uicontrol">Default</span></b> radio
-button and specify an appropriate value. If you select <b>Fixed</b>, the attribute
-has a fixed value, which cannot be changed. If you select <b>Default</b>,
-the attribute has a default value. When an attribute has a default value,
-the value of the attribute is whatever value appears as the attribute's value
-in an instance document.</li>
-<li><b><span class="uicontrol">form</span></b>. Use this field to indicate if the appearance
-of this attribute in an instance of the XML schema must be qualified by a
-namespace.</li>
+references, and <samp class="codeph">any</samp> attributes to your complex
+type.</li>
+<li class="skipspace"><span>An attribute associates an attribute name with
+a specific type and value. To add an attribute, right-click in the Attributes
+page, and click <b> <span class="uicontrol">Add Attribute</span></b>.</span> You
+can specify the following values for an attribute<ul>
+<li><b><span class="uicontrol">fixed/default</span></b>. Click the  	<b> <span
+class="uicontrol">Browse</span></b> button <span> 	<img border="0" height="18"
+src="../images/Browse.gif" width="22"/></span>  and select the <b> <span class="uicontrol">Fixed</span></b> or <b> <span
+class="uicontrol">Default</span></b> radio button and specify an appropriate
+value. If you select <b>Fixed</b>, the attribute has a fixed value, which
+cannot be changed. If you select <b>Default</b>, the attribute has a default
+value. When an attribute has a default value, the value of the attribute is
+whatever value appears as the attribute's value in an instance document.</li>
+<li><b><span class="uicontrol">form</span></b>. Use this field to indicate
+if the appearance of this attribute in an instance of the XML schema must
+be qualified by a namespace.</li>
 <li><span class="uicontrol"><b>name</b>. </span>Enter the name of the attribute.</li>
-<li><span class="uicontrol"><b>type</b>. </span>Click the <b> <span class="uicontrol">More</span></b> button <span>
-<img border="0" src="../images/More.gif" width="22" height="18"></span> 
-and select the type of the attribute. </li>
-<li><span class="uicontrol"><b>use</b>. </span>This field indicates how an attribute may
-be used in an instance document. If you select <b>optional</b>, the attribute
-may appear once, but it does not have to. If you select <b>required</b>, the
-attribute must appear once. If you select <b>prohibited</b>, the attribute
+<li><span class="uicontrol"><b>type</b>. </span>Click the <b> <span class="uicontrol">Browse</span></b> button <span> <img
+border="0" height="18" src="../images/Browse.gif" width="22"/></span>  and
+select the type of the attribute. </li>
+<li><span class="uicontrol"><b>use</b>. </span>This field indicates how an
+attribute may be used in an instance document. If you select <b>optional</b>,
+the attribute may appear once, but it does not have to. If you select <b>required</b>,
+the attribute must appear once. If you select <b>prohibited</b>, the attribute
 must not appear. <b>Note</b>: If you selected the <b> <span class="uicontrol">Default</span></b> radio
 button, you must select <b>optional</b> in this field, otherwise the default
 value will not be valid.</li>
-</ul>
-</li>
-<li class="skipspace"><span>An attribute reference provides a reference to a global attribute.
-To add an attribute reference, right-click in the Attributes page, and click <b> <span class="uicontrol">Add
-Attribute Ref</span>.</b> </span>A declaration that references a global
-attribute enables the referenced attribute to appear in the instance document
-in the context of the referencing declaration. The menu option to add
-an attribute reference only appears if there are global attributes defined
-elsewhere in the document.<ol type="a"><li><span>Select the reference, then select the global attribute you want
-it to reference from the <b> <span class="uicontrol">ref</span></b> drop down list.</span></li>
-</ol>
-</li>
-<li class="skipspace"><span>An attribute group reference provides a reference to an attribute
-group. To add an attribute group reference, right-click in the Attributes
-page, and click <b> <span class="uicontrol">Add Attribute Group Ref. </span></b></span> &nbsp;A
-declaration that references an attribute group enables the referenced attribute
-group to appear in the instance document in the context of the referencing
-declaration. The menu option to add an attribute group reference only appears
-if there are attribute groups defined elsewhere in the document.<ol type="a"><li><span>Select the reference, then select the attribute group you want
-it to reference from the<span class="uicontrol"> <b>ref</b></span> drop down list.</span></li>
-</ol>
-</li>
-<li class="skipspace"><span>An <samp class="codeph">any</samp> element enables element content according
-to namespaces, and the corresponding <samp class="codeph">any</samp> attribute 
-element enables attributes to appear in elements. To add an <samp class="codeph">any</samp> attribute,
-right-click in the Attributes page, and click <b> <span class="uicontrol">Add Any Attribute</span></b>.</span> You can specify the following values for an <samp class="codeph">any</samp> attribute:<ul><li>For a <b>namespace</b> value, you can select <b>##any</b> (this allows
+</ul> </li>
+<li class="skipspace"><span>An attribute reference provides a reference to
+a global attribute. To add an attribute reference, right-click in the Attributes
+page, and click <b> <span class="uicontrol">Add Attribute Ref</span>.</b> </span>A
+declaration that references a global attribute enables the referenced attribute
+to appear in the instance document in the context of the referencing declaration.
+The menu option to add an attribute reference only appears if there are global
+attributes defined elsewhere in the document.<ol type="a">
+<li><span>Select the reference, then select the global attribute you want
+it to reference from the <b> <span class="uicontrol">ref</span></b> drop down
+list.</span></li>
+</ol> </li>
+<li class="skipspace"><span>An attribute group reference provides a reference
+to an attribute group. To add an attribute group reference, right-click in
+the Attributes page, and click <b> <span class="uicontrol">Add Attribute Group
+Ref. </span></b></span> &nbsp;A declaration that references an attribute group
+enables the referenced attribute group to appear in the instance document
+in the context of the referencing declaration. The menu option to add an attribute
+group reference only appears if there are attribute groups defined elsewhere
+in the document.<ol type="a">
+<li><span>Select the reference, then select the attribute group you want it
+to reference from the<span class="uicontrol"> <b>ref</b></span> drop down
+list.</span></li>
+</ol> </li>
+<li class="skipspace"><span>An <samp class="codeph">any</samp> element enables
+element content according to namespaces, and the corresponding <samp class="codeph">any</samp> attribute
+ element enables attributes to appear in elements. To add an <samp class="codeph">any</samp> attribute,
+right-click in the Attributes page, and click <b> <span class="uicontrol">Add
+Any Attribute</span></b>.</span> You can specify the following values for
+an <samp class="codeph">any</samp> attribute:<ul>
+<li>For a <b>namespace</b> value, you can select <b>##any</b> (this allows
 any well-formed XML from any namespace), <b>##local </b> (this allows any
 well-formed XML that is not declared to be in a namespace, <b>##other </b> (this
 allows any well-formed XML that is not from the target namespace of the type
 being defined) or <b>##targetNamespace </b> (which is shorthand for the target
 namespace of the type being defined). </li>
-<li>For a <b> <span class="uicontrol">processContents</span></b> value, you can select <b>skip</b> (the
-XML processor will not validate the attribute content at all), <b>lax </b>(the
-XML processor will validate the attribute content as much as it can), or <b>strict </b> (the
-XML processor will validate all the attribute content).</li>
-</ul>
- </li>
-<li class="skipspace"><span>Click the <b> <span class="uicontrol">Documentation</span></b> tab if you want
-to provide any information about this complex type.</span> The <span class="uicontrol">Documentation</span> page
-is used for human readable material, such as a description, and the <span class="uicontrol">App
-Info</span> page can be used to provide information for applications.</li>
-</ol>
-</div>
-
-<div><p><b class="reltaskshd">Related tasks</b><br />
-<a href="../topics/taddcmod.html" title="You can add a content model to an element, global element, a complex type, or a group. A content model is the representation of any data that may be contained inside the element, global element, complex type, or group.">Adding a content model</a><br />
-</p>
-</div>
-</body>
-</html>
\ No newline at end of file
+<li>For a <b> <span class="uicontrol">processContents</span></b> value, you
+can select <b>skip</b> (the XML processor will not validate the attribute
+content at all), <b>lax </b>(the XML processor will validate the attribute
+content as much as it can), or <b>strict </b> (the XML processor will validate
+all the attribute content).</li>
+</ul>  </li>
+<li class="skipspace"><span>Click the <b> <span class="uicontrol">Documentation</span></b> tab
+if you want to provide any information about this complex type.</span> The <span
+class="uicontrol">Documentation</span> page is used for human readable material,
+such as a description, and the <span class="uicontrol">App Info</span> page
+can be used to provide information for applications.</li>
+</ol> </div>  <div><p><b class="reltaskshd">Related tasks</b><br/> <a href="../topics/taddcmod.html"
+title="You can add a content model to an element, global element, a complex type, or a group. A content model is the representation of any data that may be contained inside the element, global element, complex type, or group."
+>Adding a content model</a><br/> </p> </div> </body>
+</html>
diff --git a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddelm.html b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddelm.html
index 55d2288..7d86704 100644
--- a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddelm.html
+++ b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddelm.html
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
-  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<?xml version="1.0" encoding="utf-8"?>
+<!--Arbortext, Inc., 1988-2005, v.4002-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html>
 <head>
 <!-- /*******************************************************************************
@@ -13,156 +14,147 @@
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/ -->
-<link rel="stylesheet" type="text/css" href="../../org.eclipse.wst.doc.user/common.css" />
+<link href="../../org.eclipse.wst.doc.user/common.css" rel="stylesheet" type="text/css"/>
 <title>Adding elements</title>
 </head>
-<body id="taddelm"><a name="taddelm"><!-- --></a>
-
-<h1 class="topictitle1">Adding elements</h1>
-<div><p>Elements are fundamental building blocks in XML. Element declarations 
-	provide value constraints, and a description that can be used for 
-	validation, as well as establishing constraining relationships between 
-	related elements and attributes, and controlling substitution of elements.</p><div class="skipspace"><p>
-		The following instructions were written for the Resource perspective, 
-		but they will also work in many other perspectives.</p>
-<p>To add an
-element, follow these steps:</p>
-</div>
-<ol><li class="skipspace"><span>In the Outline view, right-click the content 
-	model you want to
-work with and click <b> <span class="uicontrol">Add Element</span></b>.</span></li>
-<li class="skipspace"><span>In the Properties view, type a new name for the element in the 
-<b> <span class="uicontrol">Name</span></b> field.</span></li>
-<li class="skipspace"><span>Specify its type information by clicking the <b> <span class="uicontrol">More</span></b> button
-<img border="0" src="../images/More.gif" width="22" height="18"> and selecting the appropriate type.</span> 
-The Set Type dialog lists all built-in and user-defined types currently 
-available. You can change the <b><span class="uicontrol">Scope</span></b> of the 
-list by selecting one of the following options: 
-<div>
+<body id="taddelm"><a name="taddelm"><!-- --></a>  <h1 class="topictitle1">Adding
+elements</h1> <div><p>Elements are fundamental building blocks in XML. Element
+declarations  	provide value constraints, and a description that can be used
+for  	validation, as well as establishing constraining relationships between
+ 	related elements and attributes, and controlling substitution of elements.</p><div
+class="skipspace"><p> 		The following instructions were written for the Resource
+perspective,  		but they will also work in many other perspectives.</p> <p>To
+add an element, follow these steps:</p> </div> <ol>
+<li class="skipspace"><span>In the Outline view, right-click the content 
+	model you want to work with and click <b> <span class="uicontrol">Add Element</span></b>.</span></li>
+<li class="skipspace"><span>In the Properties view, type a new name for the
+element in the  <b> <span class="uicontrol">Name</span></b> field.</span></li>
+<li class="skipspace"><span>Specify its type information by clicking the <b> <span
+class="uicontrol">Browse</span></b> button <img border="0" height="18" src="../images/Browse.gif"
+width="22"/> and selecting the appropriate type.</span>  The Set Type dialog
+lists all built-in and user-defined types currently  available. You can change
+the <b><span class="uicontrol">Scope</span></b> of the  list by selecting
+one of the following options:  <div> 	<ul>
+<li><b><span class="uicontrol">Workspace</span></b>. Lists all of the  		types
+available in your workspace. </li>
+<li><b><span class="uicontrol">Enclosing Project</span></b>. Lists all  	
+of the types available in the project that contains your file. </li>
+<li>(Default) <b><span class="uicontrol">Current Resource</span>. </b> 		List
+all of the types available in your current file. </li>
+</ul> </div> 	</li>
+<li class="skipspace"><span>(Optional) Select the appropriate value in the <b> <span
+class="uicontrol">MinOccurs</span></b> field.</span> This is the number of
+times the element may appear. If you want the element to be optional, select <b><span
+class="uicontrol">0</span></b>. Otherwise, select  <b><span class="uicontrol">1</span></b>. </li>
+<li class="skipspace"><span>(Optional) Select the appropriate value in the <b> <span
+class="uicontrol">MaxOccurs</span></b> field.</span> This is the maximum number
+of times the element may appear. You can select <b> <span class="uicontrol">unbounded</span></b> to
+indicate there is no maximum number of occurrences.</li>
+<li class="skipspace"> <div> 	(Optional) Click the <b><span class="uicontrol">Other</span></b> tab.&nbsp;
+In  	this page, you can specify the following various values for the element:
 	<ul>
-		<li><b><span class="uicontrol">Workspace</span></b>. Lists all of the 
-		types available in your workspace. </li>
-		<li><b><span class="uicontrol">Enclosing Project</span></b>. Lists all 
-		of the types available in the project that contains your file. </li>
-		<li>(Default) <b><span class="uicontrol">Current Resource</span>. </b>
-		List all of the types available in your current file. </li>
-	</ul>
-</div>
-	</li>
-<li class="skipspace"><span>(Optional) Select the appropriate value in the <b>
-<span class="uicontrol">MinOccurs</span></b> field.</span> This is the number of times the element may appear. If you want the
-element to be optional, select <b><span class="uicontrol">0</span></b>. Otherwise, select 
-<b><span class="uicontrol">1</span></b>. </li>
-<li class="skipspace"><span>(Optional) Select the appropriate value in the <b> <span class="uicontrol">MaxOccurs</span></b> field.</span> This is the maximum number of times the element may appear. You can
-select <b> <span class="uicontrol">unbounded</span></b> to indicate there is no maximum number
-of occurrences.</li>
-<li class="skipspace">
-<div>
-	(Optional) Click the <b><span class="uicontrol">Other</span></b> tab.&nbsp; In 
-	this page, you can specify the following various values for the element:
-	<ul>
-		<li><b><span class="uicontrol">block</span></b>. This field determines 
-		whether the element may be replaced by an element derived from it. </li>
-		<li><b><span class="uicontrol">fixed/default</span>.</b> Click the <b>
-		<span class="uicontrol">More</span></b> button
-		<img border="0" src="../images/More.gif" width="22" height="18"> and 
-		select the <b><span class="uicontrol">Fixed</span></b> or <b>
-		<span class="uicontrol">Default</span></b> radio button and specify an 
-		appropriate value. If you select <strong>Fixed</strong>, the element has 
-		a fixed value, which cannot be changed. If you select <strong>Default</strong>, 
-		the element has a default value. </li>
-		<li><b><span class="uicontrol">form</span></b>. Use this field to 
-		indicate if the appearance of this element in an instance of the XML 
-		schema (that is, an XML file associated with the XML schema) must be 
-		qualified by a namespace. </li>
-		<li><b><span class="uicontrol">maxOccurs</span></b>. This is the minimum 
-		number of times the element can appear in an instance document. You can 
-		specify this option here or in the General page. </li>
-		<li><b><span class="uicontrol">minOccurs</span></b>. This is the maximum 
-		number of times the element can appear in an instance document. You can 
-		specify this option here or in the General page. </li>
-		<li><b><span class="uicontrol">nillable</span></b>. Select <strong>true</strong> 
-		if you do not want the element to be able to have any child elements, 
-		only attributes. </li>
-	</ul>
-</div>
-	</li>
+<li><b><span class="uicontrol">block</span></b>. This field determines  	
+whether the element may be replaced by an element derived from it. </li>
+<li><b><span class="uicontrol">fixed/default</span>.</b> Click the <b> 		<span
+class="uicontrol">Browse</span></b> button 		<img border="0" height="18" src="../images/Browse.gif"
+width="22"/> and  		select the <b><span class="uicontrol">Fixed</span></b> or <b> 
+	<span class="uicontrol">Default</span></b> radio button and specify an  
+	appropriate value. If you select <strong>Fixed</strong>, the element has
+ 		a fixed value, which cannot be changed. If you select <strong>Default</strong>,
+ 		the element has a default value. </li>
+<li><b><span class="uicontrol">form</span></b>. Use this field to  		indicate
+if the appearance of this element in an instance of the XML  		schema (that
+is, an XML file associated with the XML schema) must be  		qualified by a
+namespace. </li>
+<li><b><span class="uicontrol">maxOccurs</span></b>. This is the minimum 
+		number of times the element can appear in an instance document. You can
+ 		specify this option here or in the General page. </li>
+<li><b><span class="uicontrol">minOccurs</span></b>. This is the maximum 
+		number of times the element can appear in an instance document. You can
+ 		specify this option here or in the General page. </li>
+<li><b><span class="uicontrol">nillable</span></b>. Select <strong>true</strong> 
+		if you do not want the element to be able to have any child elements,  
+	only attributes. </li>
+</ul> </div> 	</li>
 <li class="skipspace"><span>Click the <b> <span class="uicontrol">Attributes</span></b> tab.</span> You
 can use this page to add attributes, attribute references, attributes group
 references, and <samp class="codeph">any</samp> attributes to your element.</li>
-<li class="skipspace"><span>An attribute associates an attribute name with a specific type
-and value. To add an attribute, right-click in the Attributes page, and click<b> <span class="uicontrol">Add
-Attribute</span>.</b></span> You can specify the following values for
-an attribute<ul><li><b><span class="uicontrol">fixed/default</span>.</b> Click the
-	<b> <span class="uicontrol">More</span></b> button
-	<img border="0" src="../images/More.gif" width="22" height="18"> and select the
-	<b> <span class="uicontrol">Fixed</span></b> or <b> <span class="uicontrol">Default</span></b> radio
-button and specify an appropriate value. If you select <b>Fixed</b>, the attribute
-has a fixed value, which cannot be changed. If you select <b>Default</b>,
-the attribute has a default value.</li>
-<li><b><span class="uicontrol">form</span></b>. Use this field to indicate if the appearance
-of this attribute in an instance of the XML schema must be qualified by a
-namespace.</li>
+<li class="skipspace"><span>An attribute associates an attribute name with
+a specific type and value. To add an attribute, right-click in the Attributes
+page, and click<b> <span class="uicontrol">Add Attribute</span>.</b></span> You
+can specify the following values for an attribute<ul>
+<li><b><span class="uicontrol">fixed/default</span>.</b> Click the 	<b> <span
+class="uicontrol">Browse</span></b> button 	<img border="0" height="18" src="../images/Browse.gif"
+width="22"/> and select the 	<b> <span class="uicontrol">Fixed</span></b> or <b> <span
+class="uicontrol">Default</span></b> radio button and specify an appropriate
+value. If you select <b>Fixed</b>, the attribute has a fixed value, which
+cannot be changed. If you select <b>Default</b>, the attribute has a default
+value.</li>
+<li><b><span class="uicontrol">form</span></b>. Use this field to indicate
+if the appearance of this attribute in an instance of the XML schema must
+be qualified by a namespace.</li>
 <li><b><span class="uicontrol">name</span></b>. Enter the name of the attribute.</li>
-<li><b><span class="uicontrol">type</span></b>. Click the <b> <span class="uicontrol">More</span></b> button
-<img border="0" src="../images/More.gif" width="22" height="18"> and select the type of the attribute. </li>
-<li><b><span class="uicontrol">use</span></b>. This field indicates how an attribute
-may be used in an instance document. If you select <b>optional</b>, the attribute
-may appear once, but it does not have to. If you select <b>required</b>, the
-attribute must appear once. If you select <b>prohibited</b>, the attribute
+<li><b><span class="uicontrol">type</span></b>. Click the <b> <span class="uicontrol">Browse</span></b> button <img
+border="0" height="18" src="../images/Browse.gif" width="22"/> and select
+the type of the attribute. </li>
+<li><b><span class="uicontrol">use</span></b>. This field indicates how an
+attribute may be used in an instance document. If you select <b>optional</b>,
+the attribute may appear once, but it does not have to. If you select <b>required</b>,
+the attribute must appear once. If you select <b>prohibited</b>, the attribute
 must not appear. <b>Note</b>: If you selected the <span class="uicontrol">Default</span> radio
 button, you must select <b>optional</b> in this field, otherwise the default
 value will not be valid.</li>
-</ul>
-</li>
-<li class="skipspace"><span>An attribute reference provides a reference to a global attribute.
-To add an attribute reference, right-click in the Attributes page, and click <b> <span class="uicontrol">Add
-Attribute Ref</span></b>.</span> A declaration that references a global
-attribute enables the referenced attribute to appear in the instance document
-in the context of the referencing declaration. The menu option to add
-an attribute reference only appears if there are global attributes defined
-elsewhere in the document.<ol type="a"><li><span>Select the reference, then select the global attribute you want
-it to reference from the<span class="uicontrol"> <b>ref</b></span> drop down list.</span></li>
-</ol>
-</li>
-<li class="skipspace"><span>An attribute group reference provides a reference to an attribute
-group. To add an attribute group reference, right-click in the Attributes
-page, and click <b> <span class="uicontrol">Add Attribute Group Ref</span>.</b></span> A
-declaration that references an attribute group enables the referenced attribute
-group to appear in the instance document in the context of the referencing
-declaration. The menu option to add an attribute group reference only appears
-if there are attribute groups defined elsewhere in the document.<ol type="a"><li><span>Select the reference, then select the attribute group you want
-it to reference from the<span class="uicontrol"> <b>ref</b></span> drop down list.</span></li>
-</ol>
-</li>
-<li class="skipspace"><span>An <samp class="codeph">any</samp> element enables element content according
-to namespaces, and the corresponding <samp class="codeph">any</samp> attribute 
-element enables attributes to appear in elements. To add an <samp class="codeph">any</samp> attribute,
-right-click in the Attributes page and click <b> <span class="uicontrol">Add Any Attribute</span>.</b></span> You can specify the following values for an <samp class="codeph">any</samp> attribute:<ul><li>For a <strong>namespace</strong> value, you can select <strong>##any</strong> (this allows
-any well-formed XML from any namespace), <b>##local </b> (this allows any
-well-formed XML that is not declared to be in a namespace, <b>##other </b> (this
+</ul> </li>
+<li class="skipspace"><span>An attribute reference provides a reference to
+a global attribute. To add an attribute reference, right-click in the Attributes
+page, and click <b> <span class="uicontrol">Add Attribute Ref</span></b>.</span> A
+declaration that references a global attribute enables the referenced attribute
+to appear in the instance document in the context of the referencing declaration.
+The menu option to add an attribute reference only appears if there are global
+attributes defined elsewhere in the document.<ol type="a">
+<li><span>Select the reference, then select the global attribute you want
+it to reference from the<span class="uicontrol"> <b>ref</b></span> drop down
+list.</span></li>
+</ol> </li>
+<li class="skipspace"><span>An attribute group reference provides a reference
+to an attribute group. To add an attribute group reference, right-click in
+the Attributes page, and click <b> <span class="uicontrol">Add Attribute Group
+Ref</span>.</b></span> A declaration that references an attribute group enables
+the referenced attribute group to appear in the instance document in the context
+of the referencing declaration. The menu option to add an attribute group
+reference only appears if there are attribute groups defined elsewhere in
+the document.<ol type="a">
+<li><span>Select the reference, then select the attribute group you want it
+to reference from the<span class="uicontrol"> <b>ref</b></span> drop down
+list.</span></li>
+</ol> </li>
+<li class="skipspace"><span>An <samp class="codeph">any</samp> element enables
+element content according to namespaces, and the corresponding <samp class="codeph">any</samp> attribute
+ element enables attributes to appear in elements. To add an <samp class="codeph">any</samp> attribute,
+right-click in the Attributes page and click <b> <span class="uicontrol">Add
+Any Attribute</span>.</b></span> You can specify the following values for
+an <samp class="codeph">any</samp> attribute:<ul>
+<li>For a <strong>namespace</strong> value, you can select <strong>##any</strong> (this
+allows any well-formed XML from any namespace), <b>##local </b> (this allows
+any well-formed XML that is not declared to be in a namespace, <b>##other </b> (this
 allows any well-formed XML that is not from the target namespace of the type
 being defined) or <b>##targetNamespace </b> (which is shorthand for the target
 namespace of the type being defined). </li>
-<li>For a <b> <span class="uicontrol">processContents</span></b> value, you can select <b>skip</b> (the
-XML processor will not validate the attribute content at all), <b>lax</b> (the
-XML processor will validate the attribute content as much as it can), or <b>strict </b> (the
-XML processor will validate all the attribute content).</li>
-</ul>
- </li>
-<li class="skipspace"><span>Click the <b> <span class="uicontrol">Documentation</span></b> tab if you want
-to provide any information about this element.</span> The <span class="uicontrol">Documentation</span> page
-is used for human readable material, such as a description, and the <span class="uicontrol">App
-Info</span> page can be used to provide information for applications.</li>
-</ol>
-<div class="skipspace">You can add a content model to an element, which is the representation
-of any data that may be contained inside the element. For more information
-about working with content models, refer to the related tasks.</div>
-</div>
-
-<div><p><b class="reltaskshd">Related tasks</b><br />
-<a href="../topics/taddcmod.html" title="You can add a content model to an element, global element, a complex type, or a group. A content model is the representation of any data that may be contained inside the element, global element, complex type, or group.">Adding a content model</a><br />
-</p>
-</div>
-</body>
-</html>
\ No newline at end of file
+<li>For a <b> <span class="uicontrol">processContents</span></b> value, you
+can select <b>skip</b> (the XML processor will not validate the attribute
+content at all), <b>lax</b> (the XML processor will validate the attribute
+content as much as it can), or <b>strict </b> (the XML processor will validate
+all the attribute content).</li>
+</ul>  </li>
+<li class="skipspace"><span>Click the <b> <span class="uicontrol">Documentation</span></b> tab
+if you want to provide any information about this element.</span> The <span
+class="uicontrol">Documentation</span> page is used for human readable material,
+such as a description, and the <span class="uicontrol">App Info</span> page
+can be used to provide information for applications.</li>
+</ol> <div class="skipspace">You can add a content model to an element, which
+is the representation of any data that may be contained inside the element.
+For more information about working with content models, refer to the related
+tasks.</div> </div>  <div><p><b class="reltaskshd">Related tasks</b><br/> <a
+href="../topics/taddcmod.html" title="You can add a content model to an element, global element, a complex type, or a group. A content model is the representation of any data that may be contained inside the element, global element, complex type, or group."
+>Adding a content model</a><br/> </p> </div> </body>
+</html>
diff --git a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddelmr.html b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddelmr.html
index 0893b05..57d608c 100644
--- a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddelmr.html
+++ b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddelmr.html
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
-  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<?xml version="1.0" encoding="utf-8"?>
+<!--Arbortext, Inc., 1988-2005, v.4002-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html>
 <head>
 <!-- /*******************************************************************************
@@ -13,135 +14,138 @@
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/ -->
-<link rel="stylesheet" type="text/css" href="../../org.eclipse.wst.doc.user/common.css" />
+<link href="../../org.eclipse.wst.doc.user/common.css" rel="stylesheet" type="text/css"/>
 <title>Adding an element reference</title>
 </head>
-<body id="taddelmr"><a name="taddelmr"><!-- --></a>
-
-<h1 class="topictitle1">Adding element references</h1>
-<div><p>An element reference provides a reference to a global element. A 
-	declaration that references a global element enables the referenced global 
-element to appear in the instance document in the context of the referencing
-declaration.</p>
-<div class="section"><p>You can modify the contents of your global element directly via
-an element reference. For example, you can add attributes and attribute reference
-to an element reference, but they are actually being added to your global
-element.</p>
-The menu option to add an element reference only appears if there
-are global elements defined elsewhere in the document.<p>The following instructions
-were written for the Resource perspective, but they will also work in many
-other perspectives.</p>
-<p>To add an element reference, follow these
-steps:</p>
-</div>
-<ol><li class="skipspace"><span>In the Outline view, right-click the content model you want to
-work with and click <b> <span class="uicontrol">Add Element Ref</span>.</b></span></li>
+<body id="taddelmr"><a name="taddelmr"><!-- --></a>  <h1 class="topictitle1">Adding
+element references</h1> <div><p>An element reference provides a reference
+to a global element. A  	declaration that references a global element enables
+the referenced global  element to appear in the instance document in the context
+of the referencing declaration.</p> <div class="section"><p>You can modify
+the contents of your global element directly via an element reference. For
+example, you can add attributes and attribute reference to an element reference,
+but they are actually being added to your global element.</p> The menu option
+to add an element reference only appears if there are global elements defined
+elsewhere in the document.<p>The following instructions were written for the
+Resource perspective, but they will also work in many other perspectives.</p> <p>To
+add an element reference, follow these steps:</p> </div> <ol>
+<li class="skipspace"><span>In the Outline view, right-click the content model
+you want to work with and click <b> <span class="uicontrol">Add Element Ref</span>.</b></span></li>
 <li class="skipspace"><span>Select the element reference.</span></li>
-<li class="skipspace"><span>In the Properties view, select the global element you want to reference
-in the <span class="uicontrol">ref</span> list.</span></li>
-<li class="skipspace"><span>(Optional) Select the appropriate value in the <b> <span class="uicontrol">MinOccurs</span></b> field.</span> This is the number of times the global element referenced may appear.
-If you want the element to be optional, select <span class="uicontrol">0</span>. Otherwise,
-select <span class="uicontrol">1</span>. </li>
-<li class="skipspace"><span>(Optional) Select the appropriate value in the <b> <span class="uicontrol">MaxOccurs</span></b> field.</span> This is the maximum number of times the global element referenced may
-appear. You can select <span class="uicontrol">unbounded</span> to indicate there
-is no maximum number of occurrences.</li>
+<li class="skipspace"><span>In the Properties view, select the global element
+you want to reference in the <span class="uicontrol">ref</span> list.</span></li>
+<li class="skipspace"><span>(Optional) Select the appropriate value in the <b> <span
+class="uicontrol">MinOccurs</span></b> field.</span> This is the number of
+times the global element referenced may appear. If you want the element to
+be optional, select <span class="uicontrol">0</span>. Otherwise, select <span
+class="uicontrol">1</span>. </li>
+<li class="skipspace"><span>(Optional) Select the appropriate value in the <b> <span
+class="uicontrol">MaxOccurs</span></b> field.</span> This is the maximum number
+of times the global element referenced may appear. You can select <span class="uicontrol">unbounded</span> to
+indicate there is no maximum number of occurrences.</li>
 <li class="stepexpand"><span>(Optional) Click the <b> <span class="uicontrol">Other</span></b> tab.</span> In
 this page, you can specify the following various values for the global element
-you are referencing: <ul><li><b><span class="uicontrol">abstract</span></b>. Click <strong>true </strong>if you want the
-global element to be abstract. When a global element is declared to be abstract,
-it cannot be used in an instance document. Instead, a member of that global
-element's substitution group must appear in the instance document.</li>
-<li><b><span class="uicontrol">block</span></b>. This field determines whether the global
-element may be replaced by an element derived from it.</li>
-<li><b><span class="uicontrol">final</span></b>. This field determines whether this global
-element may be derived from.</li>
-<li><b><span class="uicontrol">fixed/default</span>.</b> Click the <b> <span class="uicontrol">More</span></b> button
-and select the <b> <span class="uicontrol">Fixed</span></b> or <b> <span class="uicontrol">Default</span></b> radio
-button and specify an appropriate value. If you select <strong>Fixed</strong>, the global
-element has a fixed value, which cannot be changed. If you select <strong>Default</strong>,
-the element has a default value.</li>
-<li><b><span class="uicontrol">form</span></b>. Use this field to indicate if the appearance
-of this global element in an instance of the XML schema (that is, an XML file
-associated with the XML schema) must be qualified by a namespace.</li>
-<li><b><span class="uicontrol">nillable</span></b>. Select <strong>true</strong> if you do not
-want the global element to be able to have any child elements, only attributes. </li>
-<li><b><span class="uicontrol">substitutionGroup</span></b>. A substitution group allows
-elements to be substituted for other elements.</li>
-</ul>
-</li>
+you are referencing: <ul>
+<li><b><span class="uicontrol">abstract</span></b>. Click <strong>true </strong>if
+you want the global element to be abstract. When a global element is declared
+to be abstract, it cannot be used in an instance document. Instead, a member
+of that global element's substitution group must appear in the instance document.</li>
+<li><b><span class="uicontrol">block</span></b>. This field determines whether
+the global element may be replaced by an element derived from it.</li>
+<li><b><span class="uicontrol">final</span></b>. This field determines whether
+this global element may be derived from.</li>
+<li><b><span class="uicontrol">fixed/default</span>.</b> Click the <b> <span
+class="uicontrol">Browse</span></b> button and select the <b> <span class="uicontrol">Fixed</span></b> or <b> <span
+class="uicontrol">Default</span></b> radio button and specify an appropriate
+value. If you select <strong>Fixed</strong>, the global element has a fixed
+value, which cannot be changed. If you select <strong>Default</strong>, the
+element has a default value.</li>
+<li><b><span class="uicontrol">form</span></b>. Use this field to indicate
+if the appearance of this global element in an instance of the XML schema
+(that is, an XML file associated with the XML schema) must be qualified by
+a namespace.</li>
+<li><b><span class="uicontrol">nillable</span></b>. Select <strong>true</strong> if
+you do not want the global element to be able to have any child elements,
+only attributes. </li>
+<li><b><span class="uicontrol">substitutionGroup</span></b>. A substitution
+group allows elements to be substituted for other elements.</li>
+</ul> </li>
 <li class="skipspace"><span>Click the <b> <span class="uicontrol">Attributes</span></b> tab.</span> You
 can use this page to add attributes, attribute references, attributes group
-references, and <samp class="codeph">any</samp> attributes to your element reference.</li>
-<li class="skipspace"><span>An attribute associates an attribute name with a specific type
-and value. To add an attribute, right-click in the Attributes page, and click <b> <span class="uicontrol">Add
-Attribute</span></b>.</span> You can specify the following values for
-an attribute<ul><li><b><span class="uicontrol">fixed/default</span>.</b> Click the
-	<b> <span class="uicontrol">More</span></b> button
-	<img border="0" src="../images/More.gif" width="22" height="18"> and select the
-	<b> <span class="uicontrol">Fixed</span></b> or <b> <span class="uicontrol">Default</span></b> radio
-button and specify an appropriate value. If you select <b>Fixed</b>, the attribute
-has a fixed value, which cannot be changed. If you select <b>Default</b>,
-the attribute has a default value.</li>
-<li><b><span class="uicontrol">form</span></b>. Use this field to indicate if the appearance
-of this attribute in an instance of the XML schema must be qualified by a
-namespace.</li>
+references, and <samp class="codeph">any</samp> attributes to your element
+reference.</li>
+<li class="skipspace"><span>An attribute associates an attribute name with
+a specific type and value. To add an attribute, right-click in the Attributes
+page, and click <b> <span class="uicontrol">Add Attribute</span></b>.</span> You
+can specify the following values for an attribute<ul>
+<li><b><span class="uicontrol">fixed/default</span>.</b> Click the 	<b> <span
+class="uicontrol">Browse</span></b> button 	<img border="0" height="18" src="../images/Browse.gif"
+width="22"/> and select the 	<b> <span class="uicontrol">Fixed</span></b> or <b> <span
+class="uicontrol">Default</span></b> radio button and specify an appropriate
+value. If you select <b>Fixed</b>, the attribute has a fixed value, which
+cannot be changed. If you select <b>Default</b>, the attribute has a default
+value.</li>
+<li><b><span class="uicontrol">form</span></b>. Use this field to indicate
+if the appearance of this attribute in an instance of the XML schema must
+be qualified by a namespace.</li>
 <li><b><span class="uicontrol">name</span></b>. Enter the name of the attribute.</li>
-<li><b><span class="uicontrol">type</span></b>. Click the <span class="uicontrol">More</span> button
+<li><b><span class="uicontrol">type</span></b>. Click the <span class="uicontrol">Browse</span> button
 and select the type of the attribute. </li>
-<li><b><span class="uicontrol">use</span></b>. This field indicates how an attribute
-may be used in an instance document. If you select <b>optional</b>, the attribute
-may appear once, but it does not have to. If you select <b>required</b>, the
-attribute must appear once. If you select <b>prohibited</b>, the attribute
+<li><b><span class="uicontrol">use</span></b>. This field indicates how an
+attribute may be used in an instance document. If you select <b>optional</b>,
+the attribute may appear once, but it does not have to. If you select <b>required</b>,
+the attribute must appear once. If you select <b>prohibited</b>, the attribute
 must not appear. <b>Note</b>: If you selected the <b> <span class="uicontrol">Default</span></b> radio
 button, you must select <b>optional</b> in this field, otherwise the default
 value will not be valid.</li>
-</ul>
-</li>
-<li class="skipspace"><span>An attribute reference provides a reference to a global attribute.
-To add an attribute reference, right-click in the Attributes page, and click <b> <span class="uicontrol">Add
-Attribute Ref</span>.</b></span> A declaration that references a global
-attribute enables the referenced attribute to appear in the instance document
-in the context of the referencing declaration. The menu option to add
-an attribute reference only appears if there are global attributes defined
-elsewhere in the document.<ol type="a"><li><span>Select the reference, then select the global attribute you want
-it to reference from the <b> <span class="uicontrol">ref</span> </b>drop down list.</span></li>
-</ol>
-</li>
-<li class="skipspace"><span>An attribute group reference provides a reference to an attribute
-group. To add an attribute group reference, right-click in the Attributes
-page, and click <b> <span class="uicontrol">Add Attribute Group Ref</span></b>.</span> A
-declaration that references an attribute group enables the referenced attribute
-group to appear in the instance document in the context of the referencing
-declaration. The menu option to add an attribute group reference only appears
-if there are attribute groups defined elsewhere in the document.<ol type="a"><li><span>Select the reference, then select the attribute group you want
-it to reference from the <b> <span class="uicontrol">ref</span></b> drop down list.</span></li>
-</ol>
-</li>
-<li class="stepexpand"><span>An <samp class="codeph">any</samp> element enables element content according
-to namespaces, and the corresponding <samp class="codeph">any</samp> attribute element
-enables attributes to appear in elements. To add an <samp class="codeph">any</samp> attribute,
-right-click in the Attributes page and click<b> <span class="uicontrol">Add Any Attribute</span>.</b></span> You can specify the following values for an <samp class="codeph">any</samp> attribute:<ul><li>For a <strong>namespace</strong> value, you can select <strong>##any</strong> (this allows
-any well-formed XML from any namespace), <b>##local </b> (this allows any
-well-formed XML that is not declared to be in a namespace, <b>##other </b> (this
+</ul> </li>
+<li class="skipspace"><span>An attribute reference provides a reference to
+a global attribute. To add an attribute reference, right-click in the Attributes
+page, and click <b> <span class="uicontrol">Add Attribute Ref</span>.</b></span> A
+declaration that references a global attribute enables the referenced attribute
+to appear in the instance document in the context of the referencing declaration.
+The menu option to add an attribute reference only appears if there are global
+attributes defined elsewhere in the document.<ol type="a">
+<li><span>Select the reference, then select the global attribute you want
+it to reference from the <b> <span class="uicontrol">ref</span> </b>drop down
+list.</span></li>
+</ol> </li>
+<li class="skipspace"><span>An attribute group reference provides a reference
+to an attribute group. To add an attribute group reference, right-click in
+the Attributes page, and click <b> <span class="uicontrol">Add Attribute Group
+Ref</span></b>.</span> A declaration that references an attribute group enables
+the referenced attribute group to appear in the instance document in the context
+of the referencing declaration. The menu option to add an attribute group
+reference only appears if there are attribute groups defined elsewhere in
+the document.<ol type="a">
+<li><span>Select the reference, then select the attribute group you want it
+to reference from the <b> <span class="uicontrol">ref</span></b> drop down
+list.</span></li>
+</ol> </li>
+<li class="stepexpand"><span>An <samp class="codeph">any</samp> element enables
+element content according to namespaces, and the corresponding <samp class="codeph">any</samp> attribute
+element enables attributes to appear in elements. To add an <samp class="codeph">any</samp> attribute,
+right-click in the Attributes page and click<b> <span class="uicontrol">Add
+Any Attribute</span>.</b></span> You can specify the following values for
+an <samp class="codeph">any</samp> attribute:<ul>
+<li>For a <strong>namespace</strong> value, you can select <strong>##any</strong> (this
+allows any well-formed XML from any namespace), <b>##local </b> (this allows
+any well-formed XML that is not declared to be in a namespace, <b>##other </b> (this
 allows any well-formed XML that is not from the target namespace of the type
 being defined) or <b>##targetNamespace </b> (which is shorthand for the target
 namespace of the type being defined). </li>
-<li>For a <b> <span class="uicontrol">processContents</span></b> value, you can select <b>skip</b> (the
-XML processor will not validate the attribute content at all), <b>lax </b>(the
-XML processor will validate the attribute content as much as it can), or <b>strict </b> (the
-XML processor will validate all the attribute content).</li>
-</ul>
- </li>
-<li class="skipspace"><span>Click the <b> <span class="uicontrol">Documentation</span></b> tab if you want
-to provide any information about this element reference.</span> The <span class="uicontrol">Documentation</span> page is used for human readable
-material, such as a description, and the <span class="uicontrol">App Info</span> 
-page can be used to provide information for applications.</li>
-</ol>
-</div>
-
-<div><p><b class="reltaskshd">Related tasks</b><br />
-<a href="../topics/taddglem.html" title="A global element is an element with a global scope. It is one that has been declared as part of the main schema rather than as part of a complex type definition.">Adding a global element</a><br />
-</p>
-</div>
-</body>
-</html>
\ No newline at end of file
+<li>For a <b> <span class="uicontrol">processContents</span></b> value, you
+can select <b>skip</b> (the XML processor will not validate the attribute
+content at all), <b>lax </b>(the XML processor will validate the attribute
+content as much as it can), or <b>strict </b> (the XML processor will validate
+all the attribute content).</li>
+</ul>  </li>
+<li class="skipspace"><span>Click the <b> <span class="uicontrol">Documentation</span></b> tab
+if you want to provide any information about this element reference.</span> The <span
+class="uicontrol">Documentation</span> page is used for human readable material,
+such as a description, and the <span class="uicontrol">App Info</span>  page
+can be used to provide information for applications.</li>
+</ol> </div>  <div><p><b class="reltaskshd">Related tasks</b><br/> <a href="../topics/taddglem.html"
+title="A global element is an element with a global scope. It is one that has been declared as part of the main schema rather than as part of a complex type definition."
+>Adding a global element</a><br/> </p> </div> </body>
+</html>
diff --git a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddglba.html b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddglba.html
index fcb254c..49c5a8b 100644
--- a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddglba.html
+++ b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddglba.html
@@ -33,7 +33,7 @@
 <li class="skipspace"><span>In the Graph view, right click in the <b>Attributes</b> section
 and click <b> <span class="uicontrol">Add Global Attribute</span>.</b></span></li>
 <li class="skipspace"><span>In the Properties view, type the attribute <b> <span class="uicontrol">Name</span></b>.</span> </li>
-<li class="skipspace"><span>Click the <b>More</b> button next to the <b> <span class="uicontrol">Type</span></b> field
+<li class="skipspace"><span>Click the <b>Browse</b> button next to the <b> <span class="uicontrol">Type</span></b> field
 to launch the Set Types dialog.</span></li>
 <li class="skipspace"><span>Select the type you want in the type
 list, then click <b> <span class="uicontrol">OK</span></b>. </span>The Set Type dialog lists all built-in and user-defined types currently
diff --git a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddglem.html b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddglem.html
index d87d4e2..d388f17 100644
--- a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddglem.html
+++ b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddglem.html
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
-  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<?xml version="1.0" encoding="utf-8"?>
+<!--Arbortext, Inc., 1988-2005, v.4002-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html>
 <head>
 <!-- /*******************************************************************************
@@ -13,126 +14,125 @@
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/ -->
-<link rel="stylesheet" type="text/css" href="../../org.eclipse.wst.doc.user/common.css" />
+<link href="../../org.eclipse.wst.doc.user/common.css" rel="stylesheet" type="text/css"/>
 <title>Adding a global element</title>
 </head>
-<body id="taddglem"><a name="taddglem"><!-- --></a>
-
-<h1 class="topictitle1">Adding global elements</h1>
-<div><p>A global element is an element with a global scope. It is one that has 
-	been declared as part of the main schema rather than as part of a content 
-	model.</p><div class="skipspace"><p>The following instructions were written 
-		for the Resource perspective, but they will also work in many other 
-		perspectives.</p>
-<p>To add a global
-element, follow these steps:</p>
-</div>
-<ol><li class="skipspace"><span>Open your XML schema in the XML schema editor.</span></li>
-<li class="skipspace"><span>In the Outline view, select your schema.</span> The entire
-schema and its contents should be displayed in the Graph view.</li>
-<li class="skipspace"><span>In the Graph view, right click in the <b>Elements</b> section and
-click <b> <span class="uicontrol">Add Element</span></b>.</span></li>
+<body id="taddglem"><a name="taddglem"><!-- --></a>  <h1 class="topictitle1">Adding
+global elements</h1> <div><p>A global element is an element with a global
+scope. It is one that has  	been declared as part of the main schema rather
+than as part of a content  	model.</p><div class="skipspace"><p>The following
+instructions were written  		for the Resource perspective, but they will also
+work in many other  		perspectives.</p> <p>To add a global element, follow
+these steps:</p> </div> <ol>
+<li class="skipspace"><span>Open your XML schema in the XML schema editor.</span></li>
+<li class="skipspace"><span>In the Outline view, select your schema.</span> The
+entire schema and its contents should be displayed in the Graph view.</li>
+<li class="skipspace"><span>In the Graph view, right click in the <b>Elements</b> section
+and click <b> <span class="uicontrol">Add Element</span></b>.</span></li>
 <li class="skipspace"><span>In the Properties view, click the <b> <span class="uicontrol">General</span></b> tab,
 and type a new name for the global element in the <b> <span class="uicontrol">Name</span></b> field.</span></li>
-<li class="skipspace"><span>Specify its type information by clicking the <b> <span class="uicontrol">More</span></b> button
-<img border="0" src="../images/More.gif" width="22" height="18"> and selecting the appropriate type.</span> The Set Type dialog lists all
-built-in and user-defined types currently available. You can change the <b> <span class="uicontrol">Scope</span></b> of
-the list by selecting one of the following options:<ul><li><b><span class="uicontrol">Workspace</span></b>. Lists all of the types available in
-your workspace. </li>
-<li><b><span class="uicontrol">Enclosing Project</span>.</b> Lists all of the types available
-in the project that contains your file. </li>
-<li>(Default) <b> <span class="uicontrol">Current Resource</span>.</b> List all of the types
-available in your current file.</li>
-</ul>
-	</li>
-<li class="skipspace">
-<div>
-	(Optional) Click the <b><span class="uicontrol">Other</span></b> tab.&nbsp; In 
-	this page, you can specify the following various values for the global 
-	element:
-	<ul>
-		<li><b><span class="uicontrol">abstract</span></b>. Click <strong>true
-		</strong>if you want the global element to be abstract. When a global 
-		element is declared to be abstract, it cannot be used in an instance 
-		document. Instead, a member of that global element's substitution group 
-		must appear in the instance document. </li>
-		<li><b><span class="uicontrol">block</span></b>. This field determines 
-		whether the global element may be replaced by an element derived from 
-		it. </li>
-		<li><b><span class="uicontrol">final</span></b>. This field determines 
-		whether this global element may be derived from. </li>
-		<li><b><span class="uicontrol">fixed/default</span>.</b> Click the <b>
-		<span class="uicontrol">More</span></b> button
-		<img border="0" src="../images/More.gif" width="22" height="18"> and 
-		select the <b><span class="uicontrol">Fixed</span></b> or <b>
-		<span class="uicontrol">Default</span></b> radio button and specify an 
-		appropriate value. If you select <strong>Fixed</strong>, the global 
-		element has a fixed value, which cannot be changed. If you select
-		<strong>Default</strong>, the element has a default value. </li>
-		<li><b><span class="uicontrol">form</span></b>. Use this field to 
-		indicate if the appearance of this global element in an instance of the 
-		XML schema (that is, an XML file associated with the XML schema) must be 
-		qualified by a namespace. </li>
-		<li><b><span class="uicontrol">nillable</span></b>. Select <strong>true</strong> 
-		if you do not want the global element to be able to have any child 
-		elements, only attributes. </li>
-		<li><b><span class="uicontrol">substitutionGroup</span></b>. A 
-		substitution group allows elements to be substituted for other elements.</li>
-	</ul>
-</div>
-&nbsp;</li>
+<li class="skipspace"><span>Specify its type information by clicking the <b> <span
+class="uicontrol">Browse</span></b> button <img border="0" height="18" src="../images/Browse.gif"
+width="22"/> and selecting the appropriate type.</span> The Set Type dialog
+lists all built-in and user-defined types currently available. You can change
+the <b> <span class="uicontrol">Scope</span></b> of the list by selecting
+one of the following options:<ul>
+<li><b><span class="uicontrol">Workspace</span></b>. Lists all of the types
+available in your workspace. </li>
+<li><b><span class="uicontrol">Enclosing Project</span>.</b> Lists all of
+the types available in the project that contains your file. </li>
+<li>(Default) <b> <span class="uicontrol">Current Resource</span>.</b> List
+all of the types available in your current file.</li>
+</ul> 	</li>
+<li class="skipspace"> <div> 	(Optional) Click the <b><span class="uicontrol">Other</span></b> tab.&nbsp;
+In  	this page, you can specify the following various values for the global
+ 	element: 	<ul>
+<li><b><span class="uicontrol">abstract</span></b>. Click <strong>true 		</strong>if
+you want the global element to be abstract. When a global  		element is declared
+to be abstract, it cannot be used in an instance  		document. Instead, a member
+of that global element's substitution group  		must appear in the instance
+document. </li>
+<li><b><span class="uicontrol">block</span></b>. This field determines  	
+whether the global element may be replaced by an element derived from  		it. </li>
+<li><b><span class="uicontrol">final</span></b>. This field determines  	
+whether this global element may be derived from. </li>
+<li><b><span class="uicontrol">fixed/default</span>.</b> Click the <b> 		<span
+class="uicontrol">Browse</span></b> button 		<img border="0" height="18" src="../images/Browse.gif"
+width="22"/> and  		select the <b><span class="uicontrol">Fixed</span></b> or <b> 
+	<span class="uicontrol">Default</span></b> radio button and specify an  
+	appropriate value. If you select <strong>Fixed</strong>, the global  		element
+has a fixed value, which cannot be changed. If you select 		<strong>Default</strong>,
+the element has a default value. </li>
+<li><b><span class="uicontrol">form</span></b>. Use this field to  		indicate
+if the appearance of this global element in an instance of the  		XML schema
+(that is, an XML file associated with the XML schema) must be  		qualified
+by a namespace. </li>
+<li><b><span class="uicontrol">nillable</span></b>. Select <strong>true</strong> 
+		if you do not want the global element to be able to have any child  		elements,
+only attributes. </li>
+<li><b><span class="uicontrol">substitutionGroup</span></b>. A  		substitution
+group allows elements to be substituted for other elements.</li>
+</ul> </div> &nbsp;</li>
 <li class="skipspace"><span>Click the <b> <span class="uicontrol">Attributes</span></b> tab.</span> You
 can use this page to add attributes, attribute references, attributes group
-references, and <samp class="codeph">any</samp> attributes to your global element.</li>
-<li class="skipspace"><span>An attribute associates an attribute name with a specific type
-and value. To add an attribute, right-click in the Attributes page, and click <span class="uicontrol">Add
-Attribute</span>.</span> You can specify the following values for
-an attribute<ul><li><b><span class="uicontrol">fixed/default</span></b>. Click the <span class="uicontrol">More</span> button
+references, and <samp class="codeph">any</samp> attributes to your global
+element.</li>
+<li class="skipspace"><span>An attribute associates an attribute name with
+a specific type and value. To add an attribute, right-click in the Attributes
+page, and click <span class="uicontrol">Add Attribute</span>.</span> You can
+specify the following values for an attribute<ul>
+<li><b><span class="uicontrol">fixed/default</span></b>. Click the <span class="uicontrol">Browse</span> button
 and select the <b> <span class="uicontrol">Fixed</span></b> or <b> <span class="uicontrol">Default</span></b> radio
 button and specify an appropriate value. If you select <b>Fixed</b>, the attribute
 has a fixed value, which cannot be changed. If you select <b>Default</b>,
 the attribute has a default value.</li>
-<li><b><span class="uicontrol">form</span></b>. Use this field to indicate if the appearance
-of this attribute in an instance of the XML schema must be qualified by a
-namespace.</li>
+<li><b><span class="uicontrol">form</span></b>. Use this field to indicate
+if the appearance of this attribute in an instance of the XML schema must
+be qualified by a namespace.</li>
 <li><b><span class="uicontrol">name</span></b>. Enter the name of the attribute.</li>
-<li><b><span class="uicontrol">type</span></b>. Click the <b> <span class="uicontrol">More</span></b> button
-<img border="0" src="../images/More.gif" width="22" height="18"> and select the type of the attribute. </li>
-<li><b><span class="uicontrol">use</span></b>. This field indicates how an attribute
-may be used in an instance document. If you select <b>optional</b>, the attribute
-may appear once, but it does not have to. If you select <b>required</b>, the
-attribute must appear once. If you select <b>prohibited</b>, the attribute
+<li><b><span class="uicontrol">type</span></b>. Click the <b> <span class="uicontrol">Browse</span></b> button <img
+border="0" height="18" src="../images/Browse.gif" width="22"/> and select
+the type of the attribute. </li>
+<li><b><span class="uicontrol">use</span></b>. This field indicates how an
+attribute may be used in an instance document. If you select <b>optional</b>,
+the attribute may appear once, but it does not have to. If you select <b>required</b>,
+the attribute must appear once. If you select <b>prohibited</b>, the attribute
 must not appear. <b>Note</b>: If you selected the <span class="uicontrol">Default</span> radio
 button, you must select <b>optional</b> in this field, otherwise the default
 value will not be valid.</li>
-</ul>
-</li>
-<li class="skipspace"><span>An attribute reference provides a reference to a global attribute.
-To add an attribute reference, right-click in the Attributes page, and click <b> <span class="uicontrol">Add
-Attribute Ref</span>.</b></span> A declaration that references a global
-attribute enables the referenced attribute to appear in the instance document
-in the context of the referencing declaration. The menu option to add
-an attribute reference only appears if there are global attributes defined
-elsewhere in the document.<ol type="a"><li><span>Select the reference, then select the global attribute you want
-it to reference from the <b> <span class="uicontrol">ref</span></b> drop down list.</span></li>
-</ol>
-</li>
-<li class="skipspace"><span>An attribute group reference provides a reference to an attribute
-group. To add an attribute group reference, right-click in the Attributes
-page, and click <b> <span class="uicontrol">Add Attribute Group Ref</span></b>.</span> A
-declaration that references an attribute group enables the referenced attribute
-group to appear in the instance document in the context of the referencing
-declaration. The menu option to add an attribute group reference only appears
-if there are attribute groups defined elsewhere in the document.<ol type="a"><li><span>Select the reference, then select the attribute group you want
-it to reference from the <b> <span class="uicontrol">ref</span></b> drop down list.</span></li>
-</ol>
-</li>
-<li class="stepexpand"><span>An <samp class="codeph">any</samp> element enables element content according
-to namespaces, and the corresponding <samp class="codeph">any</samp> attribute element
-enables attributes to appear in elements. To add an <samp class="codeph">any</samp> attribute,
-right-click in the Attributes page and click <b> <span class="uicontrol">Add Any Attribute</span></b>.</span> You can specify the following values for an <samp class="codeph">any</samp> attribute:<ul><li>For a <strong>namespace</strong> value, you can select <strong>##any</strong> (this allows
-any well-formed XML from any namespace), <b>##local </b> (this allows any
-well-formed XML that is not declared to be in a namespace, <b>##other </b> (this
+</ul> </li>
+<li class="skipspace"><span>An attribute reference provides a reference to
+a global attribute. To add an attribute reference, right-click in the Attributes
+page, and click <b> <span class="uicontrol">Add Attribute Ref</span>.</b></span> A
+declaration that references a global attribute enables the referenced attribute
+to appear in the instance document in the context of the referencing declaration.
+The menu option to add an attribute reference only appears if there are global
+attributes defined elsewhere in the document.<ol type="a">
+<li><span>Select the reference, then select the global attribute you want
+it to reference from the <b> <span class="uicontrol">ref</span></b> drop down
+list.</span></li>
+</ol> </li>
+<li class="skipspace"><span>An attribute group reference provides a reference
+to an attribute group. To add an attribute group reference, right-click in
+the Attributes page, and click <b> <span class="uicontrol">Add Attribute Group
+Ref</span></b>.</span> A declaration that references an attribute group enables
+the referenced attribute group to appear in the instance document in the context
+of the referencing declaration. The menu option to add an attribute group
+reference only appears if there are attribute groups defined elsewhere in
+the document.<ol type="a">
+<li><span>Select the reference, then select the attribute group you want it
+to reference from the <b> <span class="uicontrol">ref</span></b> drop down
+list.</span></li>
+</ol> </li>
+<li class="stepexpand"><span>An <samp class="codeph">any</samp> element enables
+element content according to namespaces, and the corresponding <samp class="codeph">any</samp> attribute
+element enables attributes to appear in elements. To add an <samp class="codeph">any</samp> attribute,
+right-click in the Attributes page and click <b> <span class="uicontrol">Add
+Any Attribute</span></b>.</span> You can specify the following values for
+an <samp class="codeph">any</samp> attribute:<ul>
+<li>For a <strong>namespace</strong> value, you can select <strong>##any</strong> (this
+allows any well-formed XML from any namespace), <b>##local </b> (this allows
+any well-formed XML that is not declared to be in a namespace, <b>##other </b> (this
 allows any well-formed XML that is not from the target namespace of the type
 being defined) or <b>##targetNamespace </b> (which is shorthand for the target
 namespace of the type being defined). </li>
@@ -140,22 +140,17 @@
 XML processor will not validate the attribute content at all), <b>lax</b>(the
 XML processor will validate the attribute content as much as it can), or <b>strict </b> (the
 XML processor will validate all the attribute content).</li>
-</ul>
- </li>
-<li class="skipspace"><span>Click the <b> <span class="uicontrol">Documentation</span></b> tab if you want
-to provide any information about this global element.</span> The <span class="uicontrol">Documentation</span> page
-is used for human readable material, such as a description, and the <span class="uicontrol">App
-Info</span> page can be used to provide information for applications.</li>
-</ol>
-<div class="skipspace">You can add a content model to a global element, which is the representation
-of any data that may be contained inside the global element. For more information
-about working with content models, refer to the related tasks.</div>
-</div>
-
-<div><p><b class="reltaskshd">Related tasks</b><br />
-<a href="../topics/taddcmod.html" title="You can add a content model to an element, global element, a complex type, or a group. A content model is the representation of any data that may be contained inside the element, global element, complex type, or group.">Adding a content model</a><br />
-<a href="../topics/taddelmr.html" title="An element reference provides a reference to a global element. A declaration that references a global element enables the referenced global element to appear in the instance document in the context of the referencing declaration.?">Adding an element reference</a><br />
-</p>
-</div>
-</body>
-</html>
\ No newline at end of file
+</ul>  </li>
+<li class="skipspace"><span>Click the <b> <span class="uicontrol">Documentation</span></b> tab
+if you want to provide any information about this global element.</span> The <span
+class="uicontrol">Documentation</span> page is used for human readable material,
+such as a description, and the <span class="uicontrol">App Info</span> page
+can be used to provide information for applications.</li>
+</ol> <div class="skipspace">You can add a content model to a global element,
+which is the representation of any data that may be contained inside the global
+element. For more information about working with content models, refer to
+the related tasks.</div> </div>  <div><p><b class="reltaskshd">Related tasks</b><br/> <a
+href="../topics/taddcmod.html" title="You can add a content model to an element, global element, a complex type, or a group. A content model is the representation of any data that may be contained inside the element, global element, complex type, or group."
+>Adding a content model</a><br/> <a href="../topics/taddelmr.html" title="An element reference provides a reference to a global element. A declaration that references a global element enables the referenced global element to appear in the instance document in the context of the referencing declaration.?"
+>Adding an element reference</a><br/> </p> </div> </body>
+</html>
diff --git a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddimpt.html b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddimpt.html
index a2c1e54..51c73da 100644
--- a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddimpt.html
+++ b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddimpt.html
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
-  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<?xml version="1.0" encoding="utf-8"?>
+<!--Arbortext, Inc., 1988-2005, v.4002-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html>
 <head>
 <!-- /*******************************************************************************
@@ -13,81 +14,62 @@
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/ -->
-<link rel="stylesheet" type="text/css" href="../../org.eclipse.wst.doc.user/common.css" />
+<link href="../../org.eclipse.wst.doc.user/common.css" rel="stylesheet" type="text/css"/>
 <title>Adding import elements</title>
 </head>
-<body id="taddimpt"><a name="taddimpt"><!-- --></a>
-
-<h1 class="topictitle1">Adding import elements</h1>
-<p>As schemas become larger, it is often desirable to divide their content among 
-several schema documents for purposes such as ease of maintenance, reuse, and 
-readability. You can use an <samp class="codeph">import</samp> element to bring 
-in definitions and declarations from an imported schema into the current schema.
-</p>
-<div class="section">
-	The imported schema can come from a different namespace than the current 
-	schema does.</div>
-<div class="skipspace">
-	<p>You can add multiple import elements
-to an XML schema, however, prefixes and namespaces have to unique amongst
-the imported schemas.</p>
-	<p>The following instructions were written for the Resource perspective, but 
-	they will also work in many other perspectives.</p>
-	<p>To add an import element,
-follow these steps:</p></div>
-<ol>
-	<li class="skipspace"><span>Open your XML schema in the XML schema editor.</span></li>
-	<li class="skipspace"><span>In the Outline view, select your schema.</span> The entire
-schema and its contents should be displayed in the Graph view.</li>
-	<li class="skipspace"><span>In the Graph view, right click in the <b>Directives</b> section
+<body id="taddimpt"><a name="taddimpt"><!-- --></a>  <h1 class="topictitle1">Adding
+import elements</h1> <p>As schemas become larger, it is often desirable to
+divide their content among  several schema documents for purposes such as
+ease of maintenance, reuse, and  readability. You can use an <samp class="codeph">import</samp> element
+to bring  in definitions and declarations from an imported schema into the
+current schema. </p> <div class="section"> 	The imported schema can come from
+a different namespace than the current  	schema does.</div> <div class="skipspace"> 	<p>You
+can add multiple import elements to an XML schema, however, prefixes and namespaces
+have to unique amongst the imported schemas.</p> 	<p>The following instructions
+were written for the Resource perspective, but  	they will also work in many
+other perspectives.</p> 	<p>To add an import element, follow these steps:</p></div> <ol>
+<li class="skipspace"><span>Open your XML schema in the XML schema editor.</span></li>
+<li class="skipspace"><span>In the Outline view, select your schema.</span> The
+entire schema and its contents should be displayed in the Graph view.</li>
+<li class="skipspace"><span>In the Graph view, right click in the <b>Directives</b> section
 and click <b><span class="uicontrol">Add Import</span></b>.</span></li>
-	<li class="skipspace"><span>In the Properties view, click the <b>General</b> tab and click
-the <b><span class="uicontrol">More</span></b> button 
-	<img border="0" src="../images/More.gif" width="22" height="18"> to the right of the
-	<b><span class="uicontrol">Schema
-location</span></b> field.</span></li>
-	<li class="skipspace"><span>If you want to import an XML schema located in the workbench, select
-the <b><span class="uicontrol">Workbench projects</span></b> radio button and click 
-	<b><span class="uicontrol">Next</span></b>. </span>
-	<ol type="a">
-		<li><span>Select the schema you want to import and click <b>
-		<span class="uicontrol">Finish</span></b>.</span></li>
-	</ol></li>
-	<li class="skipspace"><span>If you want to import an XML schema located on the Web, select
-the <b><span class="uicontrol">HTTP</span></b> radio button and click <b>
-	<span class="uicontrol">Next</span></b>.</span><ol type="a">
-		<li class="skipspace"><span>Type the <b>URL</b> of the XML schema and click
-		<b><span class="uicontrol">Finish</span></b>.</span>
-		<div class="note"><span class="notetitle"><b>Note</b>: </span>A local copy of the schema will not be stored in the workbench.
-Every time you validate your schema, the schema's contents will be checked
-from the URL you specify.</div></li>
-	</ol></li>
-	<li class="skipspace"><span>The XML schema editor will retrieve the namespace for the imported
-XML schema file and display it as read-only in the <b><span class="uicontrol">Namespace</span></b> field.</span></li>
-	<li class="skipspace"><span>If necessary, type a unique prefix for this namespace in the 
-	<b><span class="uicontrol">Prefix</span></b> field.</span></li>
-	<li class="skipspace"><span>Click the <b><span class="uicontrol">Documentation</span></b> tab if you want
-to provide any information about this import element.</span> The 
-	<span class="uicontrol">Documentation</span> page
-is used for human readable material, such as a description, and the 
-	<span class="uicontrol">App
-Info</span> page can be used to provide information for applications.</li>
-</ol>
-<div class="skipspace">
-	<p>Once you have added an import element to your XML schema, when
-you define new elements, attributes, complex types, or simple types where
-you can specify type information, any declarations from the included schema
-will be available in the <b><span class="uicontrol">Type</span></b> list for the element,
-attribute, complex or simple type.</p></div>
-<div class="skipspace"></div>
-
-<div><p><b class="reltaskshd">Related tasks</b><br />
-<a href="../topics/taddincl.html" title="As schemas become larger, it is often desirable to divide their content among several schema documents for purposes such as ease of maintenance, reuse, and readability. XML schema defines two constructs to support this: include and import. The include element brings in definitions and declarations from the included schema into the current schema. It requires the included schema to be in the same target namespace as the including schema. The import element behaves in a similar way, with the exception that the imported schema can come from a different namespace.">Adding an include element</a><br />
-<a href="../topics/taddrdfn.html" title="You can use the redefine mechanism to redefine simple and complex types, groups, and attribute groups obtained from external schema files. Like the include mechanism, redefine requires the external components to be in the same target namespace as the redefining schema, although external components from schemas that have no namespace can also be redefined.">Adding a redefine element</a><br />
-</p>
-<p><b class="relrefhd">Related reference</b><br />
-<a href="../topics/rnmspc.html" title="">XML namespaces</a><br />
-</p>
-</div>
-</body>
-</html>
\ No newline at end of file
+<li class="skipspace"><span>In the Properties view, click the <b>General</b> tab
+and click the <b><span class="uicontrol">Browse</span></b> button  	<img border="0"
+height="18" src="../images/Browse.gif" width="22"/> to the right of the 	<b><span
+class="uicontrol">Schema location</span></b> field.</span></li>
+<li class="skipspace"><span>If you want to import an XML schema located in
+the workbench, select the <b><span class="uicontrol">Workbench projects</span></b> radio
+button and click  	<b><span class="uicontrol">Next</span></b>. </span> 	<ol
+type="a">
+<li><span>Select the schema you want to import and click <b> 		<span class="uicontrol">Finish</span></b>.</span></li>
+</ol></li>
+<li class="skipspace"><span>If you want to import an XML schema located on
+the Web, select the <b><span class="uicontrol">HTTP</span></b> radio button
+and click <b> 	<span class="uicontrol">Next</span></b>.</span><ol type="a">
+<li class="skipspace"><span>Type the <b>URL</b> of the XML schema and click
+		<b><span class="uicontrol">Finish</span></b>.</span> 		<div class="note"><span
+class="notetitle"><b>Note</b>: </span>A local copy of the schema will not
+be stored in the workbench. Every time you validate your schema, the schema's
+contents will be checked from the URL you specify.</div></li>
+</ol></li>
+<li class="skipspace"><span>The XML schema editor will retrieve the namespace
+for the imported XML schema file and display it as read-only in the <b><span
+class="uicontrol">Namespace</span></b> field.</span></li>
+<li class="skipspace"><span>If necessary, type a unique prefix for this namespace
+in the  	<b><span class="uicontrol">Prefix</span></b> field.</span></li>
+<li class="skipspace"><span>Click the <b><span class="uicontrol">Documentation</span></b> tab
+if you want to provide any information about this import element.</span> The
+ 	<span class="uicontrol">Documentation</span> page is used for human readable
+material, such as a description, and the  	<span class="uicontrol">App Info</span> page
+can be used to provide information for applications.</li>
+</ol> <div class="skipspace"> 	<p>Once you have added an import element to
+your XML schema, when you define new elements, attributes, complex types,
+or simple types where you can specify type information, any declarations from
+the included schema will be available in the <b><span class="uicontrol">Type</span></b> list
+for the element, attribute, complex or simple type.</p></div> <div class="skipspace"></div>  <div><p><b
+class="reltaskshd">Related tasks</b><br/> <a href="../topics/taddincl.html"
+title="As schemas become larger, it is often desirable to divide their content among several schema documents for purposes such as ease of maintenance, reuse, and readability. XML schema defines two constructs to support this: include and import. The include element brings in definitions and declarations from the included schema into the current schema. It requires the included schema to be in the same target namespace as the including schema. The import element behaves in a similar way, with the exception that the imported schema can come from a different namespace."
+>Adding an include element</a><br/> <a href="../topics/taddrdfn.html" title="You can use the redefine mechanism to redefine simple and complex types, groups, and attribute groups obtained from external schema files. Like the include mechanism, redefine requires the external components to be in the same target namespace as the redefining schema, although external components from schemas that have no namespace can also be redefined."
+>Adding a redefine element</a><br/> </p> <p><b class="relrefhd">Related reference</b><br/> <a
+href="../topics/rnmspc.html" title="">XML namespaces</a><br/> </p> </div> </body>
+</html>
diff --git a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddincl.html b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddincl.html
index fd392ec..44959e7 100644
--- a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddincl.html
+++ b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddincl.html
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
-  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<?xml version="1.0" encoding="utf-8"?>
+<!--Arbortext, Inc., 1988-2005, v.4002-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html>
 <head>
 <!-- /*******************************************************************************
@@ -13,83 +14,67 @@
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/ -->
-<link rel="stylesheet" type="text/css" href="../../org.eclipse.wst.doc.user/common.css" />
+<link href="../../org.eclipse.wst.doc.user/common.css" rel="stylesheet" type="text/css"/>
 <title>Adding include elements</title>
 </head>
-<body id="taddincl"><a name="taddincl"><!-- --></a>
-
-<h1 class="topictitle1">Adding include elements</h1>
-<div><p>As schemas become larger, it is often desirable to divide their content 
-	among several schema documents for purposes such as ease of maintenance, 
-	reuse, and readability. You can use the <samp class="codeph">include</samp> 
-	element to brings in definitions and declarations from the included schema 
-	into the current schema. The included schema must be in the same target 
-	namespace as the including schema. </p><div class="skipspace">
-<p>The following instructions were written for the XML perspective, but they 
-will also work in many other perspectives.</p>
-<p>To
-add an include element , follow these steps:</p>
-</div>
-<ol><li class="skipspace"><span>Open your XML schema in the XML schema editor.</span></li>
-<li class="skipspace"><span>In the Outline view, select your schema.</span> The entire
-schema and its contents should be displayed in the Graph view.</li>
+<body id="taddincl"><a name="taddincl"><!-- --></a>  <h1 class="topictitle1">Adding
+include elements</h1> <div><p>As schemas become larger, it is often desirable
+to divide their content  	among several schema documents for purposes such
+as ease of maintenance,  	reuse, and readability. You can use the <samp class="codeph">include</samp> 
+	element to brings in definitions and declarations from the included schema
+ 	into the current schema. The included schema must be in the same target
+ 	namespace as the including schema. </p><div class="skipspace"> <p>The following
+instructions were written for the XML perspective, but they  will also work
+in many other perspectives.</p> <p>To add an include element , follow these
+steps:</p> </div> <ol>
+<li class="skipspace"><span>Open your XML schema in the XML schema editor.</span></li>
+<li class="skipspace"><span>In the Outline view, select your schema.</span> The
+entire schema and its contents should be displayed in the Graph view.</li>
 <li class="skipspace"><span>In the Graph view, right click in the <b>Directives</b> section
 and click <b> <span class="uicontrol">Add Include</span>.</b></span></li>
-<li class="skipspace"><span>In the Properties view, click the <b>General</b> tab and click
-the <b> <span class="uicontrol">More</span></b> button
-<img src="../images/More.gif" width="22" height="18"> to the right of the
-<b> <span class="uicontrol">Schema
-location</span> </b>field.</span> The XML schema file you select must
-have the same namespace as the current schema.</li>
-<li class="skipspace"><span>If you want to select an XML schema located in the
-workbench, select the <b> <span class="uicontrol">Workbench projects</span></b> radio button
-and click <b> <span class="uicontrol">Next</span></b>. </span><ol type="a"><li><span>Select the schema you want to include and click 
-	<b> <span class="uicontrol">Finish</span></b>.</span></li>
-</ol>
-</li>
-<li class="skipspace"><span>If you want to select an XML schema located on the Web, select
-the <b> <span class="uicontrol">HTTP</span></b> radio button and click <b> <span class="uicontrol">Next</span></b>.</span><ol type="a"><li><span>Type the URL of the XML schema and click 
-	<b> <span class="uicontrol">Finish</span></b>. </span></li>
-</ol>
- <div class="note"><span class="notetitle"><b>Note</b>: </span> A local copy of the schema will not be stored in the workbench.
-Every time you validate your schema, the schema's contents will be checked
-from the URL you specify.</div>
-</li>
-<li class="skipspace"><span>The XML schema editor will retrieve the location of the included
-XML schema file and display it as read-only in the <b> <span class="uicontrol">Schema location</span></b> field.</span></li>
-<li class="skipspace"><span>Click the <b> <span class="uicontrol">Documentation</span></b> tab if you want
-to provide any information about this include element.</span> The <span class="uicontrol">Documentation</span> page
-is used for human readable material, such as a description, and the <span class="uicontrol">App
-Info</span> page can be used to provide information for applications.</li>
-</ol>
-<div class="skipspace"><p>Once you have added the include element to your XML schema, when
-you define new elements, attributes, complex types, or simple types where
-you can specify type information, any declarations from the included schema
-will be available in the <span class="uicontrol">Type</span> list for the element,
-attribute, complex or simple type.</p>
-<p>For example, if Address.xsd has the
-following content:</p>
-<pre>&lt;complexType name="Address"&gt;
+<li class="skipspace"><span>In the Properties view, click the <b>General</b> tab
+and click the <b> <span class="uicontrol">Browse</span></b> button <img height="18"
+src="../images/Browse.gif" width="22"/> to the right of the <b> <span class="uicontrol">Schema
+location</span> </b>field.</span> The XML schema file you select must have
+the same namespace as the current schema.</li>
+<li class="skipspace"><span>If you want to select an XML schema located in
+the workbench, select the <b> <span class="uicontrol">Workbench projects</span></b> radio
+button and click <b> <span class="uicontrol">Next</span></b>. </span><ol type="a">
+<li><span>Select the schema you want to include and click  	<b> <span class="uicontrol">Finish</span></b>.</span></li>
+</ol> </li>
+<li class="skipspace"><span>If you want to select an XML schema located on
+the Web, select the <b> <span class="uicontrol">HTTP</span></b> radio button
+and click <b> <span class="uicontrol">Next</span></b>.</span><ol type="a">
+<li><span>Type the URL of the XML schema and click  	<b> <span class="uicontrol">Finish</span></b>. </span></li>
+</ol>  <div class="note"><span class="notetitle"><b>Note</b>: </span> A local
+copy of the schema will not be stored in the workbench. Every time you validate
+your schema, the schema's contents will be checked from the URL you specify.</div> </li>
+<li class="skipspace"><span>The XML schema editor will retrieve the location
+of the included XML schema file and display it as read-only in the <b> <span
+class="uicontrol">Schema location</span></b> field.</span></li>
+<li class="skipspace"><span>Click the <b> <span class="uicontrol">Documentation</span></b> tab
+if you want to provide any information about this include element.</span> The <span
+class="uicontrol">Documentation</span> page is used for human readable material,
+such as a description, and the <span class="uicontrol">App Info</span> page
+can be used to provide information for applications.</li>
+</ol> <div class="skipspace"><p>Once you have added the include element to
+your XML schema, when you define new elements, attributes, complex types,
+or simple types where you can specify type information, any declarations from
+the included schema will be available in the <span class="uicontrol">Type</span> list
+for the element, attribute, complex or simple type.</p> <p>For example, if
+Address.xsd has the following content:</p> <pre>&lt;complexType name="Address"&gt;
     &lt;sequence&gt;
         &lt;element name="name" type="string"&gt;
         &lt;element name="street" type="string"&gt;
     &lt;/sequence&gt;
-&lt;/complexType&gt;</pre>
-and you have an XML schema called PurchaseOrder.xsd that has added
-an include for Address.xsd, then when defining a new element in  PurchaseOrder,
-you can select Address as its type.  <p>(c) Copyright 2001, World Wide Web
-Consortium (Massachusetts Institute of Technology, Institut National de Recherche
-en Informatique et en Automatique, Keio University).</p>
-</div>
-</div>
-
-<div><p><b class="reltaskshd">Related tasks</b><br />
-<a href="../topics/taddimpt.html" title="As schemas become larger, it is often desirable to divide their content among several schema documents for purposes such as ease of maintenance, reuse, and readability. XML schema defines two constructs to support this: include and import. The include element brings in definitions and declarations from the included schema into the current schema. It requires the included schema to be in the same target namespace as the including schema. The import element behaves in a similar way, with the exception that the imported schema can come from a different namespace.">Adding an import element</a><br />
-<a href="../topics/taddrdfn.html" title="You can use the redefine mechanism to redefine simple and complex types, groups, and attribute groups obtained from external schema files. Like the include mechanism, redefine requires the external components to be in the same target namespace as the redefining schema, although external components from schemas that have no namespace can also be redefined.">Adding a redefine element</a><br />
-</p>
-<p><b class="relrefhd">Related reference</b><br />
-<a href="../topics/rnmspc.html" title="">XML namespaces</a><br />
-</p>
-</div>
-</body>
-</html>
\ No newline at end of file
+&lt;/complexType&gt;</pre> and you have an XML schema called PurchaseOrder.xsd
+that has added an include for Address.xsd, then when defining a new element
+in  PurchaseOrder, you can select Address as its type.  <p>(c) Copyright 2001,
+World Wide Web Consortium (Massachusetts Institute of Technology, Institut
+National de Recherche en Informatique et en Automatique, Keio University).</p> </div> </div>  <div><p><b
+class="reltaskshd">Related tasks</b><br/> <a href="../topics/taddimpt.html"
+title="As schemas become larger, it is often desirable to divide their content among several schema documents for purposes such as ease of maintenance, reuse, and readability. XML schema defines two constructs to support this: include and import. The include element brings in definitions and declarations from the included schema into the current schema. It requires the included schema to be in the same target namespace as the including schema. The import element behaves in a similar way, with the exception that the imported schema can come from a different namespace."
+>Adding an import element</a><br/> <a href="../topics/taddrdfn.html" title="You can use the redefine mechanism to redefine simple and complex types, groups, and attribute groups obtained from external schema files. Like the include mechanism, redefine requires the external components to be in the same target namespace as the redefining schema, although external components from schemas that have no namespace can also be redefined."
+>Adding a redefine element</a><br/> </p> <p><b class="relrefhd">Related reference</b><br/> <a
+href="../topics/rnmspc.html" title="">XML namespaces</a><br/> </p> </div> </body>
+</html>
diff --git a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddrdfn.html b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddrdfn.html
index d056100..aa7b648 100644
--- a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddrdfn.html
+++ b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddrdfn.html
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
-  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<?xml version="1.0" encoding="utf-8"?>
+<!--Arbortext, Inc., 1988-2005, v.4002-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html>
 <head>
 <!-- /*******************************************************************************
@@ -13,78 +14,58 @@
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/ -->
-<link rel="stylesheet" type="text/css" href="../../org.eclipse.wst.doc.user/common.css" />
+<link href="../../org.eclipse.wst.doc.user/common.css" rel="stylesheet" type="text/css"/>
 <title>Adding redefine elements</title>
 </head>
-<body id="taddrdfn"><a name="taddrdfn"><!-- --></a>
-
-<h1 class="topictitle1">Adding redefine elements</h1>
-<div>
-	<div class="skipspace">
-		<div>
-			<div>
-				You can use the <samp class="codeph">redefine</samp> mechanism 
-				to redefine simple and complex types, groups, and attribute 
-				groups obtained from external schema files. When you redefine a 
-				component, you are modifying its contents.<p>Like the
-				<samp class="codeph">include</samp> mechanism,
-				<samp class="codeph">redefine</samp> requires the external 
-				components to be in the same target namespace as the redefining 
-				schema, although external components from schemas that have no 
-				namespace can also be redefined.</div>
-		</div>
-		<p>The following instructions were written for the Resource perspective, 
-		but they will also work in many other perspectives.</p>
-<p>To
-add a redefine element, follow these steps:</p>
-</div>
-<ol><li class="skipspace"><span>Open your XML schema in the XML schema editor.</span></li>
-<li class="skipspace"><span>In the Outline view, select your schema.</span> The entire
-schema and its contents should be displayed in the Graph view.</li>
+<body id="taddrdfn"><a name="taddrdfn"><!-- --></a>  <h1 class="topictitle1">Adding
+redefine elements</h1> <div> 	<div class="skipspace"> 		<div> 			<div> 		
+	You can use the <samp class="codeph">redefine</samp> mechanism  				to redefine
+simple and complex types, groups, and attribute  				groups obtained from
+external schema files. When you redefine a  				component, you are modifying
+its contents.<p>Like the 				<samp class="codeph">include</samp> mechanism,
+				<samp class="codeph">redefine</samp> requires the external  				components
+to be in the same target namespace as the redefining  				schema, although
+external components from schemas that have no  				namespace can also be redefined.</p></div> 
+	</div> 		<p>The following instructions were written for the Resource perspective,
+ 		but they will also work in many other perspectives.</p> <p>To add a redefine
+element, follow these steps:</p> </div> <ol>
+<li class="skipspace"><span>Open your XML schema in the XML schema editor.</span></li>
+<li class="skipspace"><span>In the Outline view, select your schema.</span> The
+entire schema and its contents should be displayed in the Graph view.</li>
 <li class="skipspace"><span>In the Graph view, right-click in the <b>Directives</b> section
 and click <span class="uicontrol">Add Redefine</span>.</span></li>
-<li class="skipspace"><span>In the Properties view, click the <b>General</b> tab and click
-the <b> <span class="uicontrol">More</span></b> button 
-<img border="0" src="../images/More.gif" width="22" height="18"> to the right of the
-<b> <span class="uicontrol">Schema
-location</span> </b>field.</span> The XML schema file you select must
-have the same namespace as the current schema.</li>
-<li class="skipspace"><span>If you want to select an XML schema located in the workbench, select
-the <b> <span class="uicontrol">Workbench projects</span> </b>radio button and click <span class="uicontrol">
-<b>Next</b>.</span></span><ol type="a"><li><span> Select the schema you want to include and click 
-	<b> <span class="uicontrol">Finish</span></b>.</span></li>
-</ol>
-</li>
-<li class="skipspace"><span>If you want to select an XML schema located on the Web, select
-the <b> <span class="uicontrol">HTTP</span></b> radio button and click <b> <span class="uicontrol">Next</span></b>.</span><ol type="a"><li><span>Type the URL of the XML schema and click 
-	<b> <span class="uicontrol">Finish</span></b>.
+<li class="skipspace"><span>In the Properties view, click the <b>General</b> tab
+and click the <b> <span class="uicontrol">Browse</span></b> button  <img border="0"
+height="18" src="../images/Browse.gif" width="22"/> to the right of the <b> <span
+class="uicontrol">Schema location</span> </b>field.</span> The XML schema
+file you select must have the same namespace as the current schema.</li>
+<li class="skipspace"><span>If you want to select an XML schema located in
+the workbench, select the <b> <span class="uicontrol">Workbench projects</span> </b>radio
+button and click <span class="uicontrol"> <b>Next</b>.</span></span><ol type="a">
+<li><span> Select the schema you want to include and click  	<b> <span class="uicontrol">Finish</span></b>.</span></li>
+</ol> </li>
+<li class="skipspace"><span>If you want to select an XML schema located on
+the Web, select the <b> <span class="uicontrol">HTTP</span></b> radio button
+and click <b> <span class="uicontrol">Next</span></b>.</span><ol type="a">
+<li><span>Type the URL of the XML schema and click  	<b> <span class="uicontrol">Finish</span></b>.
  </span></li>
-</ol>
-  <div class="note"><span class="notetitle"><b>Note</b>: </span>A local copy of the schema will not be stored in the workbench.
-Every time you validate your schema, the schema's contents will be checked
-from the URL you specify.</div>
-</li>
-<li class="skipspace"><span>The XML schema editor will retrieve the location of the included
-XML schema file and display it as read-only in the  <b>  <span class="uicontrol">Schema location</span> 
-</b>field.</span></li>
-<li class="skipspace"><span>Click the <b> <span class="uicontrol">Documentation</span></b> tab if you want
-to provide any information about this redefine element.</span> The <span class="uicontrol">Documentation</span> page is used for human readable
-material, such as a description, and the <span class="uicontrol">App Info</span> 
-page can be used to provide information for applications.</li>
-</ol>
-<div class="skipspace"><p>Once you have added the redefine element to your XML 
-	schema, you can redefine any of the simple and complex types, groups, and 
-	attribute groups in the XML schema you selected in the redefine element. </p>
-</div>
-</div>
-
-<div><p><b class="reltaskshd">Related tasks</b><br />
-<a href="../topics/taddimpt.html" title="As schemas become larger, it is often desirable to divide their content among several schema documents for purposes such as ease of maintenance, reuse, and readability. XML schema defines two constructs to support this: include and import. The include element brings in definitions and declarations from the included schema into the current schema. It requires the included schema to be in the same target namespace as the including schema. The import element behaves in a similar way, with the exception that the imported schema can come from a different namespace.">Adding an import element</a><br />
-<a href="../topics/taddincl.html" title="As schemas become larger, it is often desirable to divide their content among several schema documents for purposes such as ease of maintenance, reuse, and readability. XML schema defines two constructs to support this: include and import. The include element brings in definitions and declarations from the included schema into the current schema. It requires the included schema to be in the same target namespace as the including schema. The import element behaves in a similar way, with the exception that the imported schema can come from a different namespace.">Adding an include element</a><br />
-</p>
-<p><b class="relrefhd">Related reference</b><br />
-<a href="../topics/rnmspc.html" title="">XML namespaces</a><br />
-</p>
-</div>
-</body>
-</html>
\ No newline at end of file
+</ol>   <div class="note"><span class="notetitle"><b>Note</b>: </span>A local
+copy of the schema will not be stored in the workbench. Every time you validate
+your schema, the schema's contents will be checked from the URL you specify.</div> </li>
+<li class="skipspace"><span>The XML schema editor will retrieve the location
+of the included XML schema file and display it as read-only in the  <b>  <span
+class="uicontrol">Schema location</span>  </b>field.</span></li>
+<li class="skipspace"><span>Click the <b> <span class="uicontrol">Documentation</span></b> tab
+if you want to provide any information about this redefine element.</span> The <span
+class="uicontrol">Documentation</span> page is used for human readable material,
+such as a description, and the <span class="uicontrol">App Info</span>  page
+can be used to provide information for applications.</li>
+</ol> <div class="skipspace"><p>Once you have added the redefine element to
+your XML  	schema, you can redefine any of the simple and complex types, groups,
+and  	attribute groups in the XML schema you selected in the redefine element. </p> </div> </div>  <div><p><b
+class="reltaskshd">Related tasks</b><br/> <a href="../topics/taddimpt.html"
+title="As schemas become larger, it is often desirable to divide their content among several schema documents for purposes such as ease of maintenance, reuse, and readability. XML schema defines two constructs to support this: include and import. The include element brings in definitions and declarations from the included schema into the current schema. It requires the included schema to be in the same target namespace as the including schema. The import element behaves in a similar way, with the exception that the imported schema can come from a different namespace."
+>Adding an import element</a><br/> <a href="../topics/taddincl.html" title="As schemas become larger, it is often desirable to divide their content among several schema documents for purposes such as ease of maintenance, reuse, and readability. XML schema defines two constructs to support this: include and import. The include element brings in definitions and declarations from the included schema into the current schema. It requires the included schema to be in the same target namespace as the including schema. The import element behaves in a similar way, with the exception that the imported schema can come from a different namespace."
+>Adding an include element</a><br/> </p> <p><b class="relrefhd">Related reference</b><br/> <a
+href="../topics/rnmspc.html" title="">XML namespaces</a><br/> </p> </div> </body>
+</html>
diff --git a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddsmpt.html b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddsmpt.html
index fe99353..1d4ad64 100644
--- a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddsmpt.html
+++ b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/taddsmpt.html
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
-  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<?xml version="1.0" encoding="utf-8"?>
+<!--Arbortext, Inc., 1988-2005, v.4002-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html lang="en-us" xml:lang="en-us">
 <head>
 <!-- /*******************************************************************************
@@ -13,129 +14,125 @@
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/ -->
-<link rel="stylesheet" type="text/css" href="../../org.eclipse.wst.doc.user/common.css" />
+<link href="../../org.eclipse.wst.doc.user/common.css" rel="stylesheet" type="text/css"/>
 <title>Adding simple types</title>
 </head>
-<body id="taddsmpt"><a name="taddsmpt"><!-- --></a>
-<h1 class="topictitle1">Adding simple types</h1>
-<div><p>Simple types are used to created derived datatypes. They provide
-a set of constraints on the value space (that is, a set of values) and the
-lexical space (that is, a set of valid literals) of a datatype.</p>
-<div class="section"><p>A simple type cannot have element content and cannot carry attributes.
-Elements that contain numbers (and strings, and dates, and so on) but do not
-contain any sub-elements are said to have a simple type.</p>
-<p>The following
-instructions were written for the Resource perspective, but they will also
-work in many other perspectives.</p>
-<p>To add a simple type, follow these
-steps:</p>
-</div>
-<ol><li class="stepexpand"><span>Open your XML schema in the XML schema editor.</span></li>
-<li class="stepexpand"><span>In the Outline view, select your schema.</span> The entire
-schema and its contents should be displayed in the Graph view.</li>
-<li class="stepexpand"><span>In the Graph view, right-click in the <strong>Types</strong> section and
-click <b> <span class="uicontrol">Add Simple Type</span></b>.</span></li>
+<body id="taddsmpt"><a name="taddsmpt"><!-- --></a> <h1 class="topictitle1">Adding
+simple types</h1> <div><p>Simple types are used to created derived datatypes.
+They provide a set of constraints on the value space (that is, a set of values)
+and the lexical space (that is, a set of valid literals) of a datatype.</p> <div
+class="section"><p>A simple type cannot have element content and cannot carry
+attributes. Elements that contain numbers (and strings, and dates, and so
+on) but do not contain any sub-elements are said to have a simple type.</p> <p>The
+following instructions were written for the Resource perspective, but they
+will also work in many other perspectives.</p> <p>To add a simple type, follow
+these steps:</p> </div> <ol>
+<li class="stepexpand"><span>Open your XML schema in the XML schema editor.</span></li>
+<li class="stepexpand"><span>In the Outline view, select your schema.</span> The
+entire schema and its contents should be displayed in the Graph view.</li>
+<li class="stepexpand"><span>In the Graph view, right-click in the <strong>Types</strong> section
+and click <b> <span class="uicontrol">Add Simple Type</span></b>.</span></li>
 <li class="stepexpand"><span>In the Properties view, click the <span class="uicontrol">General</span> tab,
 and type a new name for the simple type in the <b> <span class="uicontrol">Name</span></b> field.</span></li>
-<li class="stepexpand"><span>You can select the following options from the <b> <span class="uicontrol">Variety</span></b> list:</span><ul><li>
-	<b><span class="uicontrol">atomic</span></b>. Atomic types are all the simple types
-built into the XML schema language.</li>
-<li><b><span class="uicontrol">list</span></b>. List types are comprised of sequences
-of atomic types. They have values that are comprised of finite-length sequences
-of atomic values. </li>
-<li><b><span class="uicontrol">union</span></b>. A union type enables an element or attribute
-value to be one or more instances of one type drawn from the union of multiple
-atomic and list types.</li>
-</ul>
-</li>
-<li class="stepexpand"><span>If you selected <span class="uicontrol">atomic</span> from the 
-<b> <span class="uicontrol">Variety</span></b> drop
-down list, click the <b> <span class="uicontrol">More</span></b> <img src="../images/More.gif" alt="This graphic is the More button" /> button next to the 
-<b> <span class="uicontrol">Base
-type</span></b> field to specify a base type for the simple type.</span> The Set 
-Type dialog lists all built-in and user-defined types currently available. You 
-can change the <b> <span class="uicontrol">Scope</span></b> of the list by selecting one
-of the following options:<ul><li><b><span class="uicontrol">Workspace</span></b>. Lists all of the types available in
-your workspace. </li>
-<li><b><span class="uicontrol">Enclosing Project</span></b>. Lists all of the types available
-in the project that contains your file. </li>
-<li>(Default)<b> <span class="uicontrol">Current Resource</span>.</b> List all of the types
-available in your current file.</li>
-</ul>
-	</li>
-<li class="stepexpand"><span>If you selected <span class="uicontrol">list</span> from the 
-<b> <span class="uicontrol">Variety</span></b> drop
-down list, click the <b> <span class="uicontrol">More</span></b> <img src="../images/More.gif" alt="This graphic is the More button" /> button next to the 
-<b> <span class="uicontrol">Item
+<li class="stepexpand"><span>You can select the following options from the <b> <span
+class="uicontrol">Variety</span></b> list:</span><ul>
+<li> 	<b><span class="uicontrol">atomic</span></b>. Atomic types are all the
+simple types built into the XML schema language.</li>
+<li><b><span class="uicontrol">list</span></b>. List types are comprised of
+sequences of atomic types. They have values that are comprised of finite-length
+sequences of atomic values. </li>
+<li><b><span class="uicontrol">union</span></b>. A union type enables an element
+or attribute value to be one or more instances of one type drawn from the
+union of multiple atomic and list types.</li>
+</ul> </li>
+<li class="stepexpand"><span>If you selected <span class="uicontrol">atomic</span> from
+the  <b> <span class="uicontrol">Variety</span></b> drop down list, click
+the <b> <span class="uicontrol">Browse</span></b> <img alt="This graphic is the Browse button"
+src="../images/Browse.gif"/> button next to the  <b> <span class="uicontrol">Base
+type</span></b> field to specify a base type for the simple type.</span> The
+Set  Type dialog lists all built-in and user-defined types currently available.
+You  can change the <b> <span class="uicontrol">Scope</span></b> of the list
+by selecting one of the following options:<ul>
+<li><b><span class="uicontrol">Workspace</span></b>. Lists all of the types
+available in your workspace. </li>
+<li><b><span class="uicontrol">Enclosing Project</span></b>. Lists all of
+the types available in the project that contains your file. </li>
+<li>(Default)<b> <span class="uicontrol">Current Resource</span>.</b> List
+all of the types available in your current file.</li>
+</ul> 	</li>
+<li class="stepexpand"><span>If you selected <span class="uicontrol">list</span> from
+the  <b> <span class="uicontrol">Variety</span></b> drop down list, click
+the <b> <span class="uicontrol">Browse</span></b> <img alt="This graphic is the Browse button"
+src="../images/Browse.gif"/> button next to the  <b> <span class="uicontrol">Item
 type</span> </b>field to specify a item type for the simple type.</span> The
 Set Type dialog lists all built-in and user-defined types currently available.
-You can change the <b> <span class="uicontrol">Scope</span></b> of the list by selecting one
-of the following options:<ul><li><b><span class="uicontrol">Workspace</span></b>. Lists all of the types available in
-your workspace. </li>
-<li><b><span class="uicontrol">Enclosing Project</span></b>. Lists all of the types available
-in the project that contains your file. </li>
-<li>(Default) <b> <span class="uicontrol">Current Resource</span></b>. List all of the types
-available in your current file.</li>
-</ul>
-	</li>
-<li class="stepexpand"><span>If you selected <span class="uicontrol">union</span> from the 
-<b> <span class="uicontrol">Variety</span></b> drop
-down list, click the <b> <span class="uicontrol">More</span></b> <img src="../images/More.gif" alt="This graphic is the More button" /> button next to the 
-<b> <span class="uicontrol">Member
-types</span> </b>field to specify the member types for the simple type.</span> You can select to add both 
-<b> <span class="uicontrol">Built-in simple types</span></b> and <b> <span class="uicontrol">User-defined
-simple types</span></b> to the member types value list. </li>
+You can change the <b> <span class="uicontrol">Scope</span></b> of the list
+by selecting one of the following options:<ul>
+<li><b><span class="uicontrol">Workspace</span></b>. Lists all of the types
+available in your workspace. </li>
+<li><b><span class="uicontrol">Enclosing Project</span></b>. Lists all of
+the types available in the project that contains your file. </li>
+<li>(Default) <b> <span class="uicontrol">Current Resource</span></b>. List
+all of the types available in your current file.</li>
+</ul> 	</li>
+<li class="stepexpand"><span>If you selected <span class="uicontrol">union</span> from
+the  <b> <span class="uicontrol">Variety</span></b> drop down list, click
+the <b> <span class="uicontrol">Browse</span></b> <img alt="This graphic is the Browse button"
+src="../images/Browse.gif"/> button next to the  <b> <span class="uicontrol">Member
+types</span> </b>field to specify the member types for the simple type.</span> You
+can select to add both  <b> <span class="uicontrol">Built-in simple types</span></b> and <b> <span
+class="uicontrol">User-defined simple types</span></b> to the member types
+value list. </li>
 <li class="stepexpand"><span>Click the <b> <span class="uicontrol">Enumerations</span></b> tab.</span> Enumerations
 help you to define a set of valid values for simple types. They are the actual
 values the simple type can take as valid values in the instance document.
-You can either add one enumeration or several enumerations at a time:<ol type="a"><li class="substepexpand"><span>To add one enumeration at a time, click the 
-	<b> <span class="uicontrol">Add</span></b> button
-and specify a value for the enumeration.</span></li>
-<li class="substepexpand"><span>To add several enumerations at one time, follow these steps:</span> <ol type="i"><li>Click the 
-	<b> <span class="uicontrol">Add...</span></b> button.</li>
-<li>Enter the value of each enumeration. Each value must be separated by the <b> <span class="uicontrol">Delimiter
-character</span></b>. For example: <samp class="codeph">First, Second</samp> will create
-two enumerations, one with the value "First" and one with the value "Second".</li>
+You can either add one enumeration or several enumerations at a time:<ol type="a">
+<li class="substepexpand"><span>To add one enumeration at a time, click the
+ 	<b> <span class="uicontrol">Add</span></b> button and specify a value for
+the enumeration.</span></li>
+<li class="substepexpand"><span>To add several enumerations at one time, follow
+these steps:</span> <ol type="i">
+<li>Click the  	<b> <span class="uicontrol">Add...</span></b> button.</li>
+<li>Enter the value of each enumeration. Each value must be separated by the <b> <span
+class="uicontrol">Delimiter character</span></b>. For example: <samp class="codeph">First,
+Second</samp> will create two enumerations, one with the value "First" and
+one with the value "Second".</li>
 <li>Select the <b> <span class="uicontrol">Preserve leading and trailing whitespace</span></b> check
 box if you want any white space around your enumeration values to be preserved.
-If, for example, you select this check box, the values of <samp class="codeph">First, Second</samp> will
-show up as "First" and " Second" (there is a space before Second) because
-you put a space before "Second" when entered the value.</li>
-<li>Click <b> <span class="uicontrol">OK</span></b>. Your enumerations will be created and
-appear in the Properties view.</li>
-</ol>
-</li>
-</ol>
-</li>
-<li class="skipspace"><span>Click the <b> <span class="uicontrol">Documentation</span></b> tab if you want
-to provide any information about this simple type.</span> The <span class="uicontrol">Documentation</span> page
-is used for human readable material, such as a description, and the <span class="uicontrol">App
-Info</span> page can be used to provide information for applications.</li>
-<li class="skipspace"><span>Click the <b> <span class="uicontrol">Advanced</span></b> tab.</span> The options
-available from this page will vary depending on what option you selected in
-the <b> <span class="uicontrol">Variety</span></b> field, and the <b> <span class="uicontrol">Base type</span>,</b>
-<b> <span class="uicontrol">Item
-type</span>,</b> or <b> <span class="uicontrol">Member types</span></b> field on the <span class="uicontrol">General</span> page.</li>
+If, for example, you select this check box, the values of <samp class="codeph">First,
+Second</samp> will show up as "First" and " Second" (there is a space before
+Second) because you put a space before "Second" when entered the value.</li>
+<li>Click <b> <span class="uicontrol">OK</span></b>. Your enumerations will
+be created and appear in the Properties view.</li>
+</ol> </li>
+</ol> </li>
+<li class="skipspace"><span>Click the <b> <span class="uicontrol">Documentation</span></b> tab
+if you want to provide any information about this simple type.</span> The <span
+class="uicontrol">Documentation</span> page is used for human readable material,
+such as a description, and the <span class="uicontrol">App Info</span> page
+can be used to provide information for applications.</li>
+<li class="skipspace"><span>Click the <b> <span class="uicontrol">Advanced</span></b> tab.</span> The
+options available from this page will vary depending on what option you selected
+in the <b> <span class="uicontrol">Variety</span></b> field, and the <b> <span
+class="uicontrol">Base type</span>,</b> <b> <span class="uicontrol">Item type</span>,</b> or <b> <span
+class="uicontrol">Member types</span></b> field on the <span class="uicontrol">General</span> page.</li>
 <li class="skipspace"><span>If applicable to the type, the <b> <span class="uicontrol">Facets</span></b> table
 will be populated with constraining facets. A constraining facet is an optional
-property that can be applied to a datatype to constrain its value.</span><ol type="a"><li><span>To change a facet's value, click its name in the 
-	<b> <span class="uicontrol">Name</span></b> column,
-then click its value (or the empty cell that will contain its value) in the <b> <span class="uicontrol">Value</span></b> column
-and type or select a new value.</span></li>
-<li><span> To change whether a facet's value is fixed or not, click its
-name in the <b>Name</b> column, then click the appropriate cell in the <b>Fixed</b> column,
+property that can be applied to a datatype to constrain its value.</span><ol
+type="a">
+<li><span>To change a facet's value, click its name in the  	<b> <span class="uicontrol">Name</span></b> column,
+then click its value (or the empty cell that will contain its value) in the <b> <span
+class="uicontrol">Value</span></b> column and type or select a new value.</span></li>
+<li><span> To change whether a facet's value is fixed or not, click its name
+in the <b>Name</b> column, then click the appropriate cell in the <b>Fixed</b> column,
 and change the value to true or false.</span></li>
-</ol>
-</li>
-<li class="stepexpand"><span>If applicable to the type, a Pattern page will be available. Click
-the <b> <span class="uicontrol">Patterns</span></b> tab to switch to it.</span> A pattern
-can be used to constrain the value of a type's lexical space (the set of string
-literals that represent the values of a type), which indirectly constrains
-the value space. For more information on adding a pattern to a simple type,
-refer to the related tasks.</li>
-</ol>
-	<p><b class="reltaskshd">Related tasks</b><br />
-	<a href="taddreg.html">Adding pattern facets to simple types</a></p>
-	</div>
-</body>
-</html>
\ No newline at end of file
+</ol> </li>
+<li class="stepexpand"><span>If applicable to the type, a Pattern page will
+be available. Click the <b> <span class="uicontrol">Patterns</span></b> tab
+to switch to it.</span> A pattern can be used to constrain the value of a
+type's lexical space (the set of string literals that represent the values
+of a type), which indirectly constrains the value space. For more information
+on adding a pattern to a simple type, refer to the related tasks.</li>
+</ol> 	<p><b class="reltaskshd">Related tasks</b><br/> 	<a href="taddreg.html">Adding
+pattern facets to simple types</a></p> 	</div> </body>
+</html>
diff --git a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/tvdtschm.html b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/tvdtschm.html
index c1c62e3..1106fe1 100644
--- a/docs/org.eclipse.wst.xsdeditor.doc.user/topics/tvdtschm.html
+++ b/docs/org.eclipse.wst.xsdeditor.doc.user/topics/tvdtschm.html
@@ -65,5 +65,15 @@
 <a href="../topics/tcxmlsch.html" title="You can create an XML schema and then edit it using the XML schema editor.">Creating XML schemas</a><br />
 </p>
 </div>
+
+<div><div class="relinfo"><strong>Related information</strong><br />
+<div><a href="../../org.eclipse.jst.j2ee.doc.user/topics/tjval.html" title="General validation information">../../org.eclipse.jst.j2ee.doc.user/topics/tjval.html</a></div>
+<div><a href="http://www.w3.org/TR/xmlschema-1" target="_blank" title="See the W3C Web site for more information on XML Schema specifications">XML
+Schema Part 1: Structures</a></div>
+<div><a href="http://www.w3.org/TR/xmlschema-2" target="_blank" title="See the W3C Web site for more information on XML Schema specifications">XML
+Schema Part 2: Datatypes</a></div>
+</div>
+</div>
+
 </body>
 </html>
\ No newline at end of file
diff --git a/features/org.eclipse.wst.web_core.feature/build.properties b/features/org.eclipse.wst.web_core.feature/build.properties
index 201c94e..d6a4dce 100644
--- a/features/org.eclipse.wst.web_core.feature/build.properties
+++ b/features/org.eclipse.wst.web_core.feature/build.properties
@@ -1,7 +1,8 @@
 bin.includes = feature.xml,\
                eclipse_update_120.jpg,\
                epl-v10.html,\
-               license.html
+               license.html,\
+               feature.properties
 src.includes = license.html,\
                feature.xml,\
                epl-v10.html,\
diff --git a/features/org.eclipse.wst.web_core.feature/feature.properties b/features/org.eclipse.wst.web_core.feature/feature.properties
new file mode 100644
index 0000000..64893f7
--- /dev/null
+++ b/features/org.eclipse.wst.web_core.feature/feature.properties
@@ -0,0 +1,130 @@
+###############################################################################
+# Copyright (c) 2006 IBM Corporation 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:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+# feature.properties
+# contains externalized strings for feature.xml
+# "%foo" in feature.xml corresponds to the key "foo" in this file
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file should be translated.
+
+# "featureName" property - name of the feature
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse.org
+
+# "updateSiteName" property - label for the update site
+updateSiteName=Eclipse.org update site
+
+# "description" property - description of the feature
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
+March 17, 2005\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
+is provided to you under the terms and conditions of the Eclipse Public\n\
+License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
+Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse.org CVS\n\
+repository ("Repository") in CVS modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+   - Content may be structured and packaged into modules to facilitate delivering,\n\
+     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+     plug-in fragments ("Fragments"), and features ("Features").\n\
+   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
+     in a directory named "plugins".\n\
+   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+Features may also include other Features ("Included Features"). Files named\n\
+"feature.xml" may contain a list of the names and version numbers of\n\
+Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+   - The top-level (root) directory\n\
+   - Plug-in and Fragment directories\n\
+   - Inside Plug-ins and Fragments packaged as JARs\n\
+   - Sub-directories of the directory named "src" of certain Plug-ins\n\
+   - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Eclipse Update Manager, you must agree to a license ("Feature Update\n\
+License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties". Such Abouts,\n\
+Feature Licenses and Feature Update Licenses contain the terms and\n\
+conditions (or references to such terms and conditions) that govern your\n\
+use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
+    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use,\n\
+and re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/features/org.eclipse.wst.web_core.feature/feature.xml b/features/org.eclipse.wst.web_core.feature/feature.xml
index 04d7f57..3540282 100644
--- a/features/org.eclipse.wst.web_core.feature/feature.xml
+++ b/features/org.eclipse.wst.web_core.feature/feature.xml
@@ -1,8 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <feature
       id="org.eclipse.wst.web_core.feature"
-      label="org.eclipse.wst.web_core.feature"
-      version="1.0.0">
+      label="WDT Web Core Feature"
+      version="1.0.3.qualifier"
+      provider-name="Eclipse.org">
 
    <description>
       %description
@@ -16,8 +17,8 @@
       <import feature="org.eclipse.platform" version="3.1.1" match="equivalent"/>
       <import feature="org.eclipse.emf" version="2.1.1" match="equivalent"/>
       <import feature="org.eclipse.jem" version="1.1.0.1" match="equivalent"/>
-      <import feature="org.eclipse.wst.server_core.feature" version="1.0.0" match="equivalent"/>
-      <import feature="org.eclipse.wst.common_core.feature" version="1.0.0" match="equivalent"/>
+      <import feature="org.eclipse.wst.server_core.feature" version="1.0.2" match="equivalent"/>
+      <import feature="org.eclipse.wst.common_core.feature" version="1.0.2" match="equivalent"/>
    </requires>
 
    <plugin
diff --git a/features/org.eclipse.wst.web_core.feature/sourceTemplateFeature/eclipse_update_120.jpg b/features/org.eclipse.wst.web_core.feature/sourceTemplateFeature/eclipse_update_120.jpg
index 17bb8e3..bfdf708 100644
--- a/features/org.eclipse.wst.web_core.feature/sourceTemplateFeature/eclipse_update_120.jpg
+++ b/features/org.eclipse.wst.web_core.feature/sourceTemplateFeature/eclipse_update_120.jpg
Binary files differ
diff --git a/features/org.eclipse.wst.web_core.feature/sourceTemplateFeature/feature.properties b/features/org.eclipse.wst.web_core.feature/sourceTemplateFeature/feature.properties
new file mode 100644
index 0000000..0186a3a
--- /dev/null
+++ b/features/org.eclipse.wst.web_core.feature/sourceTemplateFeature/feature.properties
@@ -0,0 +1,131 @@
+###############################################################################
+# Copyright (c) 2006 IBM Corporation 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:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+# feature.properties
+# contains externalized strings for feature.xml
+# "%foo" in feature.xml corresponds to the key "foo" in this file
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file should be translated.
+
+# "featureName" property - name of the feature
+featureName=Source for WST Web Core Feature
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse.org
+
+# "updateSiteName" property - label for the update site
+updateSiteName=Web Tools Platform (WTP) Updates
+
+# "description" property - description of the feature
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
+March 17, 2005\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
+is provided to you under the terms and conditions of the Eclipse Public\n\
+License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
+Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse.org CVS\n\
+repository ("Repository") in CVS modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+   - Content may be structured and packaged into modules to facilitate delivering,\n\
+     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+     plug-in fragments ("Fragments"), and features ("Features").\n\
+   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
+     in a directory named "plugins".\n\
+   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+Features may also include other Features ("Included Features"). Files named\n\
+"feature.xml" may contain a list of the names and version numbers of\n\
+Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+   - The top-level (root) directory\n\
+   - Plug-in and Fragment directories\n\
+   - Inside Plug-ins and Fragments packaged as JARs\n\
+   - Sub-directories of the directory named "src" of certain Plug-ins\n\
+   - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Eclipse Update Manager, you must agree to a license ("Feature Update\n\
+License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties". Such Abouts,\n\
+Feature Licenses and Feature Update Licenses contain the terms and\n\
+conditions (or references to such terms and conditions) that govern your\n\
+use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
+    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use,\n\
+and re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/features/org.eclipse.wst.web_core.feature/sourceTemplateFeature/feature.xml b/features/org.eclipse.wst.web_core.feature/sourceTemplateFeature/feature.xml
new file mode 100644
index 0000000..04323c2
--- /dev/null
+++ b/features/org.eclipse.wst.web_core.feature/sourceTemplateFeature/feature.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.wst.web_core.feature.source"
+      label="%featureName"
+      version="1.0.3.qualifier"
+      provider-name="%providerName">
+
+   <description>
+      %description
+   </description>
+
+   <copyright>
+      %copyright
+   </copyright>
+
+   <license url="license.html">
+      %license
+   </license>
+
+   <url>
+      <update label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates/"/>
+   </url>
+
+   <plugin
+         id="org.eclipse.wst.web_core.feature.source"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"/>
+
+</feature>
diff --git a/features/org.eclipse.wst.web_core.feature/sourceTemplatePlugin/about.properties b/features/org.eclipse.wst.web_core.feature/sourceTemplatePlugin/about.properties
index 88a06c5..61f1e6e 100644
--- a/features/org.eclipse.wst.web_core.feature/sourceTemplatePlugin/about.properties
+++ b/features/org.eclipse.wst.web_core.feature/sourceTemplatePlugin/about.properties
@@ -16,7 +16,7 @@
 #
 # Do not translate any values surrounded by {}
 
-blurb=Web Standard Tools SDK\n\
+blurb=Web Standard Tools - Web Core\n\
 \n\
 Version: {featureVersion}\n\
 Build id: {0}\n\
diff --git a/features/org.eclipse.wst.web_core.feature/sourceTemplatePlugin/eclipse32.gif b/features/org.eclipse.wst.web_core.feature/sourceTemplatePlugin/eclipse32.gif
index 0282f5d..e6ad7cc 100644
--- a/features/org.eclipse.wst.web_core.feature/sourceTemplatePlugin/eclipse32.gif
+++ b/features/org.eclipse.wst.web_core.feature/sourceTemplatePlugin/eclipse32.gif
Binary files differ
diff --git a/features/org.eclipse.wst.web_core.feature/sourceTemplatePlugin/plugin.properties b/features/org.eclipse.wst.web_core.feature/sourceTemplatePlugin/plugin.properties
index 165af04..c9d38d6 100644
--- a/features/org.eclipse.wst.web_core.feature/sourceTemplatePlugin/plugin.properties
+++ b/features/org.eclipse.wst.web_core.feature/sourceTemplatePlugin/plugin.properties
@@ -8,5 +8,5 @@
 # Contributors:
 #     IBM Corporation - initial API and implementation
 ###############################################################################
-pluginName=Web Standard Tools SDK - Common Component
+pluginName=Web Standard Tools - Web Core Source
 providerName=Eclipse.org
diff --git a/features/org.eclipse.wst.web_sdk.feature/build.properties b/features/org.eclipse.wst.web_sdk.feature/build.properties
index 7c83ea4..5b386b6 100644
--- a/features/org.eclipse.wst.web_sdk.feature/build.properties
+++ b/features/org.eclipse.wst.web_sdk.feature/build.properties
@@ -1,7 +1,8 @@
 bin.includes = feature.xml,\
                eclipse_update_120.jpg,\
                epl-v10.html,\
-               license.html
+               license.html,\
+               feature.properties
 
 generate.feature@org.eclipse.wst.web_ui.feature.source=org.eclipse.wst.web_ui.feature
 
diff --git a/features/org.eclipse.wst.web_sdk.feature/feature.properties b/features/org.eclipse.wst.web_sdk.feature/feature.properties
new file mode 100644
index 0000000..64893f7
--- /dev/null
+++ b/features/org.eclipse.wst.web_sdk.feature/feature.properties
@@ -0,0 +1,130 @@
+###############################################################################
+# Copyright (c) 2006 IBM Corporation 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:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+# feature.properties
+# contains externalized strings for feature.xml
+# "%foo" in feature.xml corresponds to the key "foo" in this file
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file should be translated.
+
+# "featureName" property - name of the feature
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse.org
+
+# "updateSiteName" property - label for the update site
+updateSiteName=Eclipse.org update site
+
+# "description" property - description of the feature
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
+March 17, 2005\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
+is provided to you under the terms and conditions of the Eclipse Public\n\
+License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
+Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse.org CVS\n\
+repository ("Repository") in CVS modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+   - Content may be structured and packaged into modules to facilitate delivering,\n\
+     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+     plug-in fragments ("Fragments"), and features ("Features").\n\
+   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
+     in a directory named "plugins".\n\
+   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+Features may also include other Features ("Included Features"). Files named\n\
+"feature.xml" may contain a list of the names and version numbers of\n\
+Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+   - The top-level (root) directory\n\
+   - Plug-in and Fragment directories\n\
+   - Inside Plug-ins and Fragments packaged as JARs\n\
+   - Sub-directories of the directory named "src" of certain Plug-ins\n\
+   - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Eclipse Update Manager, you must agree to a license ("Feature Update\n\
+License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties". Such Abouts,\n\
+Feature Licenses and Feature Update Licenses contain the terms and\n\
+conditions (or references to such terms and conditions) that govern your\n\
+use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
+    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use,\n\
+and re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/features/org.eclipse.wst.web_sdk.feature/feature.xml b/features/org.eclipse.wst.web_sdk.feature/feature.xml
index e1db923..678e955 100644
--- a/features/org.eclipse.wst.web_sdk.feature/feature.xml
+++ b/features/org.eclipse.wst.web_sdk.feature/feature.xml
@@ -1,22 +1,23 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <feature
       id="org.eclipse.wst.web_sdk.feature"
-      label="org.eclipse.wst.web_sdk.feature"
-      version="1.0.0">
+      label="WST Web SDK Feature"
+      version="1.0.3.qualifier"
+      provider-name="Eclipse.org">
 
    <description>
       %description
    </description>
 
-
-
    <license url="license.html">
       %license
    </license>
 
+   <url>
+      <update label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates/"/>
+   </url>
 
-
-  <includes
+   <includes
          id="org.eclipse.wst.web_ui.feature.source"
          version="0.0.0"/>
 
diff --git a/features/org.eclipse.wst.web_ui.feature/build.properties b/features/org.eclipse.wst.web_ui.feature/build.properties
index 201c94e..d6a4dce 100644
--- a/features/org.eclipse.wst.web_ui.feature/build.properties
+++ b/features/org.eclipse.wst.web_ui.feature/build.properties
@@ -1,7 +1,8 @@
 bin.includes = feature.xml,\
                eclipse_update_120.jpg,\
                epl-v10.html,\
-               license.html
+               license.html,\
+               feature.properties
 src.includes = license.html,\
                feature.xml,\
                epl-v10.html,\
diff --git a/features/org.eclipse.wst.web_ui.feature/feature.properties b/features/org.eclipse.wst.web_ui.feature/feature.properties
new file mode 100644
index 0000000..64893f7
--- /dev/null
+++ b/features/org.eclipse.wst.web_ui.feature/feature.properties
@@ -0,0 +1,130 @@
+###############################################################################
+# Copyright (c) 2006 IBM Corporation 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:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+# feature.properties
+# contains externalized strings for feature.xml
+# "%foo" in feature.xml corresponds to the key "foo" in this file
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file should be translated.
+
+# "featureName" property - name of the feature
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse.org
+
+# "updateSiteName" property - label for the update site
+updateSiteName=Eclipse.org update site
+
+# "description" property - description of the feature
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
+March 17, 2005\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
+is provided to you under the terms and conditions of the Eclipse Public\n\
+License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
+Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse.org CVS\n\
+repository ("Repository") in CVS modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+   - Content may be structured and packaged into modules to facilitate delivering,\n\
+     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+     plug-in fragments ("Fragments"), and features ("Features").\n\
+   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
+     in a directory named "plugins".\n\
+   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+Features may also include other Features ("Included Features"). Files named\n\
+"feature.xml" may contain a list of the names and version numbers of\n\
+Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+   - The top-level (root) directory\n\
+   - Plug-in and Fragment directories\n\
+   - Inside Plug-ins and Fragments packaged as JARs\n\
+   - Sub-directories of the directory named "src" of certain Plug-ins\n\
+   - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Eclipse Update Manager, you must agree to a license ("Feature Update\n\
+License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties". Such Abouts,\n\
+Feature Licenses and Feature Update Licenses contain the terms and\n\
+conditions (or references to such terms and conditions) that govern your\n\
+use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
+    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use,\n\
+and re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/features/org.eclipse.wst.web_ui.feature/feature.xml b/features/org.eclipse.wst.web_ui.feature/feature.xml
index 5889530..32c6247 100644
--- a/features/org.eclipse.wst.web_ui.feature/feature.xml
+++ b/features/org.eclipse.wst.web_ui.feature/feature.xml
@@ -2,7 +2,8 @@
 <feature
       id="org.eclipse.wst.web_ui.feature"
       label="org.eclipse.wst.web_ui.feature"
-      version="1.0.1">
+      version="1.0.3.qualifier"
+      provider-name="Eclipse.org">
 
    <description>
       %description
@@ -12,12 +13,16 @@
       %license
    </license>
 
+   <url>
+      <update label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates/"/>
+   </url>
+
    <includes
          id="org.eclipse.wst.web_userdoc.feature"
          version="0.0.0"/>
 
    <requires>
-      <import feature="org.eclipse.wst.web_core.feature" version="1.0.0"/>
+      <import feature="org.eclipse.wst.web_core.feature" version="1.0.2" match="equivalent" />
    </requires>
 
    <plugin
@@ -33,7 +38,7 @@
          install-size="0"
          version="0.0.0"
          unpack="false"/>
-         
+
    <plugin
          id="org.eclipse.wst.web.ui.infopop"
          download-size="0"
diff --git a/features/org.eclipse.wst.web_ui.feature/sourceTemplateFeature/eclipse_update_120.jpg b/features/org.eclipse.wst.web_ui.feature/sourceTemplateFeature/eclipse_update_120.jpg
index 17bb8e3..bfdf708 100644
--- a/features/org.eclipse.wst.web_ui.feature/sourceTemplateFeature/eclipse_update_120.jpg
+++ b/features/org.eclipse.wst.web_ui.feature/sourceTemplateFeature/eclipse_update_120.jpg
Binary files differ
diff --git a/features/org.eclipse.wst.web_ui.feature/sourceTemplateFeature/feature.xml b/features/org.eclipse.wst.web_ui.feature/sourceTemplateFeature/feature.xml
index babf24e..db18fb6 100644
--- a/features/org.eclipse.wst.web_ui.feature/sourceTemplateFeature/feature.xml
+++ b/features/org.eclipse.wst.web_ui.feature/sourceTemplateFeature/feature.xml
@@ -1,27 +1,39 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <feature
-	primary="false"
-	label="org.eclipse.wst.web_ui.feature.source"
-	id="org.eclipse.wst.web_ui.feature.source"
-	version="1.0.0">
-	<description>
-		%description
-	</description>
-	<copyright url="http://www.example.com/copyright">
-		%copyright
-	</copyright>
-	<license url="license.html">%license</license>
-	
-	<includes
+      id="org.eclipse.wst.web_ui.feature.source"
+      label="Source for WST Web UI Feature"
+      version="1.0.3.qualifier"
+      provider-name="%providerName">
+
+   <description> 
+      %description
+   </description>
+
+   <copyright>
+      %copyright 
+   </copyright>
+
+   <license url="license.html">
+      %license
+   </license>
+
+   <url>
+      <update label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates/"/>
+   </url>
+
+
+   <includes
          id="org.eclipse.wst.web_core.feature"
          version="0.0.0"/>
-	<includes
+
+   <includes
          id="org.eclipse.wst.web_core.feature.source"
          version="0.0.0"/>
-    <plugin
+
+   <plugin
          id="org.eclipse.wst.web_ui.feature.source"
          download-size="0"
          install-size="0"
-         version="0.0.0"/>   
-                          
+         version="0.0.0"/>
+
 </feature>
diff --git a/features/org.eclipse.wst.web_ui.feature/sourceTemplatePlugin/about.properties b/features/org.eclipse.wst.web_ui.feature/sourceTemplatePlugin/about.properties
index 88a06c5..3195c0a 100644
--- a/features/org.eclipse.wst.web_ui.feature/sourceTemplatePlugin/about.properties
+++ b/features/org.eclipse.wst.web_ui.feature/sourceTemplatePlugin/about.properties
@@ -16,7 +16,7 @@
 #
 # Do not translate any values surrounded by {}
 
-blurb=Web Standard Tools SDK\n\
+blurb=Web Standard Tools - Web UI\n\
 \n\
 Version: {featureVersion}\n\
 Build id: {0}\n\
diff --git a/features/org.eclipse.wst.web_ui.feature/sourceTemplatePlugin/eclipse32.gif b/features/org.eclipse.wst.web_ui.feature/sourceTemplatePlugin/eclipse32.gif
index 0282f5d..e6ad7cc 100644
--- a/features/org.eclipse.wst.web_ui.feature/sourceTemplatePlugin/eclipse32.gif
+++ b/features/org.eclipse.wst.web_ui.feature/sourceTemplatePlugin/eclipse32.gif
Binary files differ
diff --git a/features/org.eclipse.wst.web_ui.feature/sourceTemplatePlugin/plugin.properties b/features/org.eclipse.wst.web_ui.feature/sourceTemplatePlugin/plugin.properties
index be01280..0656fb9 100644
--- a/features/org.eclipse.wst.web_ui.feature/sourceTemplatePlugin/plugin.properties
+++ b/features/org.eclipse.wst.web_ui.feature/sourceTemplatePlugin/plugin.properties
@@ -8,5 +8,5 @@
 # Contributors:
 #     IBM Corporation - initial API and implementation
 ###############################################################################
-pluginName=Web Standard Tools SDK - WST Web Component
+pluginName=Web Standard Tools - Web UI Source
 providerName=Eclipse.org
diff --git a/features/org.eclipse.wst.web_userdoc.feature/build.properties b/features/org.eclipse.wst.web_userdoc.feature/build.properties
index a0b4899..f151d50 100644
--- a/features/org.eclipse.wst.web_userdoc.feature/build.properties
+++ b/features/org.eclipse.wst.web_userdoc.feature/build.properties
@@ -1,7 +1,8 @@
 bin.includes = feature.xml,\
                eclipse_update_120.jpg,\
                epl-v10.html,\
-               license.html
+               license.html,\
+               feature.properties
 src.includes = license.html,\
                epl-v10.html,\
                feature.xml,\
diff --git a/features/org.eclipse.wst.web_userdoc.feature/feature.properties b/features/org.eclipse.wst.web_userdoc.feature/feature.properties
new file mode 100644
index 0000000..64893f7
--- /dev/null
+++ b/features/org.eclipse.wst.web_userdoc.feature/feature.properties
@@ -0,0 +1,130 @@
+###############################################################################
+# Copyright (c) 2006 IBM Corporation 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:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+# feature.properties
+# contains externalized strings for feature.xml
+# "%foo" in feature.xml corresponds to the key "foo" in this file
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file should be translated.
+
+# "featureName" property - name of the feature
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse.org
+
+# "updateSiteName" property - label for the update site
+updateSiteName=Eclipse.org update site
+
+# "description" property - description of the feature
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
+March 17, 2005\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
+is provided to you under the terms and conditions of the Eclipse Public\n\
+License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
+Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse.org CVS\n\
+repository ("Repository") in CVS modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+   - Content may be structured and packaged into modules to facilitate delivering,\n\
+     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+     plug-in fragments ("Fragments"), and features ("Features").\n\
+   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
+     in a directory named "plugins".\n\
+   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+Features may also include other Features ("Included Features"). Files named\n\
+"feature.xml" may contain a list of the names and version numbers of\n\
+Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+   - The top-level (root) directory\n\
+   - Plug-in and Fragment directories\n\
+   - Inside Plug-ins and Fragments packaged as JARs\n\
+   - Sub-directories of the directory named "src" of certain Plug-ins\n\
+   - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Eclipse Update Manager, you must agree to a license ("Feature Update\n\
+License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties". Such Abouts,\n\
+Feature Licenses and Feature Update Licenses contain the terms and\n\
+conditions (or references to such terms and conditions) that govern your\n\
+use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
+    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use,\n\
+and re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/features/org.eclipse.wst.web_userdoc.feature/feature.xml b/features/org.eclipse.wst.web_userdoc.feature/feature.xml
index 38c5b20..d2f0bcb 100644
--- a/features/org.eclipse.wst.web_userdoc.feature/feature.xml
+++ b/features/org.eclipse.wst.web_userdoc.feature/feature.xml
@@ -1,26 +1,31 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <feature
       id="org.eclipse.wst.web_userdoc.feature"
-      label="org.eclipse.wst.web_userdoc.feature"
-      version="1.0.0">
+      label="WST Web User Doc Feature"
+      version="1.0.2.qualifier"
+      provider-name="Eclipse.org">
 
    <description>
       %description
    </description>
 
-
-
    <license url="license.html">
       %license
    </license>
 
+   <url>
+      <update label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates/"/>
+   </url>
+
+
+
    <plugin
          id="org.eclipse.wst.doc.user"
          download-size="0"
          install-size="0"
          version="0.0.0"
          unpack="false"/>
-         
+
    <plugin
          id="org.eclipse.wst.webtools.doc.user"
          download-size="0"
diff --git a/features/org.eclipse.wst.xml_core.feature/build.properties b/features/org.eclipse.wst.xml_core.feature/build.properties
index 201c94e..d6a4dce 100644
--- a/features/org.eclipse.wst.xml_core.feature/build.properties
+++ b/features/org.eclipse.wst.xml_core.feature/build.properties
@@ -1,7 +1,8 @@
 bin.includes = feature.xml,\
                eclipse_update_120.jpg,\
                epl-v10.html,\
-               license.html
+               license.html,\
+               feature.properties
 src.includes = license.html,\
                feature.xml,\
                epl-v10.html,\
diff --git a/features/org.eclipse.wst.xml_core.feature/feature.properties b/features/org.eclipse.wst.xml_core.feature/feature.properties
new file mode 100644
index 0000000..7a82f0e
--- /dev/null
+++ b/features/org.eclipse.wst.xml_core.feature/feature.properties
@@ -0,0 +1,130 @@
+###############################################################################
+# Copyright (c) 2006 IBM Corporation 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:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+# feature.properties
+# contains externalized strings for feature.xml
+# "%foo" in feature.xml corresponds to the key "foo" in this file
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file should be translated.
+
+# "featureName" property - name of the feature
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse.org
+
+# "updateSiteName" property - label for the update site
+updateSiteName=Web Tools Platform (WTP) Updates
+
+# "description" property - description of the feature
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
+March 17, 2005\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
+is provided to you under the terms and conditions of the Eclipse Public\n\
+License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
+Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse.org CVS\n\
+repository ("Repository") in CVS modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+   - Content may be structured and packaged into modules to facilitate delivering,\n\
+     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+     plug-in fragments ("Fragments"), and features ("Features").\n\
+   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
+     in a directory named "plugins".\n\
+   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+Features may also include other Features ("Included Features"). Files named\n\
+"feature.xml" may contain a list of the names and version numbers of\n\
+Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+   - The top-level (root) directory\n\
+   - Plug-in and Fragment directories\n\
+   - Inside Plug-ins and Fragments packaged as JARs\n\
+   - Sub-directories of the directory named "src" of certain Plug-ins\n\
+   - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Eclipse Update Manager, you must agree to a license ("Feature Update\n\
+License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties". Such Abouts,\n\
+Feature Licenses and Feature Update Licenses contain the terms and\n\
+conditions (or references to such terms and conditions) that govern your\n\
+use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
+    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use,\n\
+and re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/features/org.eclipse.wst.xml_core.feature/feature.xml b/features/org.eclipse.wst.xml_core.feature/feature.xml
index c46665e..7110289 100644
--- a/features/org.eclipse.wst.xml_core.feature/feature.xml
+++ b/features/org.eclipse.wst.xml_core.feature/feature.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <feature
       id="org.eclipse.wst.xml_core.feature"
-      label="org.eclipse.wst.xml_core.feature"
-      version="1.1.0.qualifer">
+      label="XML Core Feature"
+      version="1.0.2.qualifier">
 
    <description>
       %description
@@ -12,12 +12,16 @@
       %license
    </license>
 
+   <url>
+      <update label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates/"/>
+   </url>
+
    <requires>
-      <import feature="org.apache.xerces.feature" version="2.7.0" match="greaterOrEqual"/>
-      <import feature="org.eclipse.rcp" version="3.1.1" match="equivalent"/>
-      <import feature="org.eclipse.platform" version="3.1.1" match="equivalent"/>
+      <import feature="org.apache.xerces.feature" version="2.7.0" match="equivalent"/>
+      <import feature="org.eclipse.rcp" version="3.1.2" match="equivalent"/>
+      <import feature="org.eclipse.platform" version="3.1.2" match="equivalent"/>
       <import feature="org.eclipse.emf" version="2.1.1" match="equivalent"/>
-      <import feature="org.eclipse.wst.common_core.feature" version="1.0.0" match="equivalent"/>
+      <import feature="org.eclipse.wst.common_core.feature" version="1.0.2" match="equivalent"/>
       <import feature="org.eclipse.xsd" version="2.1.1" match="equivalent"/>
    </requires>
 
diff --git a/features/org.eclipse.wst.xml_core.feature/sourceTemplateFeature/eclipse_update_120.jpg b/features/org.eclipse.wst.xml_core.feature/sourceTemplateFeature/eclipse_update_120.jpg
index 17bb8e3..bfdf708 100644
--- a/features/org.eclipse.wst.xml_core.feature/sourceTemplateFeature/eclipse_update_120.jpg
+++ b/features/org.eclipse.wst.xml_core.feature/sourceTemplateFeature/eclipse_update_120.jpg
Binary files differ
diff --git a/features/org.eclipse.wst.xml_core.feature/sourceTemplateFeature/feature.properties b/features/org.eclipse.wst.xml_core.feature/sourceTemplateFeature/feature.properties
new file mode 100644
index 0000000..ea547d3
--- /dev/null
+++ b/features/org.eclipse.wst.xml_core.feature/sourceTemplateFeature/feature.properties
@@ -0,0 +1,134 @@
+###############################################################################
+# Copyright (c) 2000, 2005 IBM Corporation 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:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+# feature.properties
+# contains externalized strings for feature.xml
+# "%foo" in feature.xml corresponds to the key "foo" in this file
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file should be translated.
+
+# "featureName" property - name of the feature
+featureName=Source for WTP XML Core Plugins
+
+copyright=Copyright (c) 2000, 2006 IBM Corporation and others.
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse.org
+
+# "updateSiteName" property - label for the update site
+updateSiteName=Web Tools Platform (WTP) Updates
+
+# "description" property - description of the feature
+description=API documentation and source code zips for Eclipse Java development tools.
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
+March 17, 2005\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
+is provided to you under the terms and conditions of the Eclipse Public\n\
+License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
+Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse.org CVS\n\
+repository ("Repository") in CVS modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+   - Content may be structured and packaged into modules to facilitate delivering,\n\
+     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+     plug-in fragments ("Fragments"), and features ("Features").\n\
+   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
+     in a directory named "plugins".\n\
+   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+Features may also include other Features ("Included Features"). Files named\n\
+"feature.xml" may contain a list of the names and version numbers of\n\
+Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+   - The top-level (root) directory\n\
+   - Plug-in and Fragment directories\n\
+   - Inside Plug-ins and Fragments packaged as JARs\n\
+   - Sub-directories of the directory named "src" of certain Plug-ins\n\
+   - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Eclipse Update Manager, you must agree to a license ("Feature Update\n\
+License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties". Such Abouts,\n\
+Feature Licenses and Feature Update Licenses contain the terms and\n\
+conditions (or references to such terms and conditions) that govern your\n\
+use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
+    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use,\n\
+and re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/features/org.eclipse.wst.xml_core.feature/sourceTemplateFeature/feature.xml b/features/org.eclipse.wst.xml_core.feature/sourceTemplateFeature/feature.xml
new file mode 100644
index 0000000..0966476
--- /dev/null
+++ b/features/org.eclipse.wst.xml_core.feature/sourceTemplateFeature/feature.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.wst.xml_core.feature.source"
+      label="%featureName"
+      version="1.0.2.qualifier"
+      provider-name="%providerName">
+
+   <description>
+      %description
+   </description>
+
+   <copyright>
+      %copyright
+   </copyright>
+
+   <license url="license.html">
+      %license
+   </license>
+
+   <url>
+      <update label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates/"/>
+   </url>
+
+
+
+   <plugin
+         id="org.eclipse.wst.xml_core.feature.source"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"/>
+
+</feature>
diff --git a/features/org.eclipse.wst.xml_core.feature/sourceTemplatePlugin/about.properties b/features/org.eclipse.wst.xml_core.feature/sourceTemplatePlugin/about.properties
index 88a06c5..e1c2716 100644
--- a/features/org.eclipse.wst.xml_core.feature/sourceTemplatePlugin/about.properties
+++ b/features/org.eclipse.wst.xml_core.feature/sourceTemplatePlugin/about.properties
@@ -16,7 +16,7 @@
 #
 # Do not translate any values surrounded by {}
 
-blurb=Web Standard Tools SDK\n\
+blurb=Web Standard Tools - XML Core\n\
 \n\
 Version: {featureVersion}\n\
 Build id: {0}\n\
diff --git a/features/org.eclipse.wst.xml_core.feature/sourceTemplatePlugin/eclipse32.gif b/features/org.eclipse.wst.xml_core.feature/sourceTemplatePlugin/eclipse32.gif
index 0282f5d..e6ad7cc 100644
--- a/features/org.eclipse.wst.xml_core.feature/sourceTemplatePlugin/eclipse32.gif
+++ b/features/org.eclipse.wst.xml_core.feature/sourceTemplatePlugin/eclipse32.gif
Binary files differ
diff --git a/features/org.eclipse.wst.xml_core.feature/sourceTemplatePlugin/plugin.properties b/features/org.eclipse.wst.xml_core.feature/sourceTemplatePlugin/plugin.properties
index 165af04..8f43777 100644
--- a/features/org.eclipse.wst.xml_core.feature/sourceTemplatePlugin/plugin.properties
+++ b/features/org.eclipse.wst.xml_core.feature/sourceTemplatePlugin/plugin.properties
@@ -8,5 +8,5 @@
 # Contributors:
 #     IBM Corporation - initial API and implementation
 ###############################################################################
-pluginName=Web Standard Tools SDK - Common Component
+pluginName=Web Standard Tools - XML Core Source
 providerName=Eclipse.org
diff --git a/features/org.eclipse.wst.xml_sdk.feature/build.properties b/features/org.eclipse.wst.xml_sdk.feature/build.properties
index f238b71..e846029 100644
--- a/features/org.eclipse.wst.xml_sdk.feature/build.properties
+++ b/features/org.eclipse.wst.xml_sdk.feature/build.properties
@@ -1,6 +1,7 @@
 bin.includes = feature.xml,\
                license.html,\
                epl-v10.html,\
-               eclipse_update_120.jpg
+               eclipse_update_120.jpg,\
+               feature.properties
 
 generate.feature@org.eclipse.wst.xml_ui.feature.source=org.eclipse.wst.xml_ui.feature
diff --git a/features/org.eclipse.wst.xml_sdk.feature/feature.properties b/features/org.eclipse.wst.xml_sdk.feature/feature.properties
new file mode 100644
index 0000000..7a82f0e
--- /dev/null
+++ b/features/org.eclipse.wst.xml_sdk.feature/feature.properties
@@ -0,0 +1,130 @@
+###############################################################################
+# Copyright (c) 2006 IBM Corporation 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:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+# feature.properties
+# contains externalized strings for feature.xml
+# "%foo" in feature.xml corresponds to the key "foo" in this file
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file should be translated.
+
+# "featureName" property - name of the feature
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse.org
+
+# "updateSiteName" property - label for the update site
+updateSiteName=Web Tools Platform (WTP) Updates
+
+# "description" property - description of the feature
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
+March 17, 2005\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
+is provided to you under the terms and conditions of the Eclipse Public\n\
+License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
+Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse.org CVS\n\
+repository ("Repository") in CVS modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+   - Content may be structured and packaged into modules to facilitate delivering,\n\
+     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+     plug-in fragments ("Fragments"), and features ("Features").\n\
+   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
+     in a directory named "plugins".\n\
+   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+Features may also include other Features ("Included Features"). Files named\n\
+"feature.xml" may contain a list of the names and version numbers of\n\
+Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+   - The top-level (root) directory\n\
+   - Plug-in and Fragment directories\n\
+   - Inside Plug-ins and Fragments packaged as JARs\n\
+   - Sub-directories of the directory named "src" of certain Plug-ins\n\
+   - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Eclipse Update Manager, you must agree to a license ("Feature Update\n\
+License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties". Such Abouts,\n\
+Feature Licenses and Feature Update Licenses contain the terms and\n\
+conditions (or references to such terms and conditions) that govern your\n\
+use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
+    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use,\n\
+and re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/features/org.eclipse.wst.xml_sdk.feature/feature.xml b/features/org.eclipse.wst.xml_sdk.feature/feature.xml
index 0137e64..01e843a 100644
--- a/features/org.eclipse.wst.xml_sdk.feature/feature.xml
+++ b/features/org.eclipse.wst.xml_sdk.feature/feature.xml
@@ -1,28 +1,27 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <feature
       id="org.eclipse.wst.xml_sdk.feature"
-      label="org.eclipse.wst.xml_sdk.feature"
-      version="1.1.0.qualifier">
+      label="SDK for XML Components"
+      version="1.0.2.qualifier">
 
    <description>
       %description
    </description>
 
-
-
    <license url="license.html">
       %license
    </license>
 
-   <requires>
-      <import feature="org.eclipse.wst.xml_ui.feature" version="0.0.0"/>
-   </requires>
+   <url>
+      <update label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates/"/>
+   </url>
 
-         
    <includes
          id="org.eclipse.wst.xml_ui.feature.source"
          version="0.0.0"/>
 
-
+   <requires>
+      <import feature="org.eclipse.wst.xml_ui.feature" version="0.0.0"/>
+   </requires>
 
 </feature>
diff --git a/features/org.eclipse.wst.xml_ui.feature/build.properties b/features/org.eclipse.wst.xml_ui.feature/build.properties
index 03c689e..5b64d28 100644
--- a/features/org.eclipse.wst.xml_ui.feature/build.properties
+++ b/features/org.eclipse.wst.xml_ui.feature/build.properties
@@ -1,7 +1,8 @@
 bin.includes = feature.xml,\
                epl-v10.html,\
                eclipse_update_120.jpg,\
-               license.html
+               license.html,\
+               feature.properties
 src.includes = license.html,\
                epl-v10.html,\
                feature.xml,\
diff --git a/features/org.eclipse.wst.xml_ui.feature/feature.properties b/features/org.eclipse.wst.xml_ui.feature/feature.properties
new file mode 100644
index 0000000..8c250e2
--- /dev/null
+++ b/features/org.eclipse.wst.xml_ui.feature/feature.properties
@@ -0,0 +1,132 @@
+###############################################################################
+# Copyright (c) 2000, 2005 IBM Corporation 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:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+# feature.properties
+# contains externalized strings for feature.xml
+# "%foo" in feature.xml corresponds to the key "foo" in this file
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file should be translated.
+
+# "featureName" property - name of the feature
+featureName=XML UI feature plugins
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse.org
+
+# "updateSiteName" property - label for the update site
+updateSiteName=Web Tools Platform (WTP) Updates
+
+# "description" property - description of the feature
+description=API documentation and source code zips for Eclipse Java development tools.
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
+March 17, 2005\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
+is provided to you under the terms and conditions of the Eclipse Public\n\
+License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
+Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse.org CVS\n\
+repository ("Repository") in CVS modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+   - Content may be structured and packaged into modules to facilitate delivering,\n\
+     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+     plug-in fragments ("Fragments"), and features ("Features").\n\
+   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
+     in a directory named "plugins".\n\
+   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+Features may also include other Features ("Included Features"). Files named\n\
+"feature.xml" may contain a list of the names and version numbers of\n\
+Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+   - The top-level (root) directory\n\
+   - Plug-in and Fragment directories\n\
+   - Inside Plug-ins and Fragments packaged as JARs\n\
+   - Sub-directories of the directory named "src" of certain Plug-ins\n\
+   - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Eclipse Update Manager, you must agree to a license ("Feature Update\n\
+License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties". Such Abouts,\n\
+Feature Licenses and Feature Update Licenses contain the terms and\n\
+conditions (or references to such terms and conditions) that govern your\n\
+use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
+    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use,\n\
+and re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/features/org.eclipse.wst.xml_ui.feature/feature.xml b/features/org.eclipse.wst.xml_ui.feature/feature.xml
index 4ba945d..6881984 100644
--- a/features/org.eclipse.wst.xml_ui.feature/feature.xml
+++ b/features/org.eclipse.wst.xml_ui.feature/feature.xml
@@ -1,8 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <feature
       id="org.eclipse.wst.xml_ui.feature"
-      label="org.eclipse.wst.xml_ui.feature"
-      version="1.1.0.qualifer">
+      label="XML UI Feature"
+      version="1.0.2.qualifier"
+      provider-name="%providerName">
 
    <description>
       %description
@@ -12,14 +13,18 @@
       %license
    </license>
 
+   <url>
+      <update label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates/"/>
+   </url>
+
    <includes
          id="org.eclipse.wst.xml_userdoc.feature"
          version="0.0.0"/>
 
    <requires>
       <import feature="org.apache.xerces.feature" version="2.7.0" match="greaterOrEqual"/>
-      <import feature="org.eclipse.wst.xml_core.feature" version="1.0.0" match="equivalent"/>
-      <import feature="org.eclipse.wst.common_ui.feature" version="1.0.0" match="equivalent"/>
+      <import feature="org.eclipse.wst.xml_core.feature" version="1.0.2" match="equivalent"/>
+      <import feature="org.eclipse.wst.common_ui.feature" version="1.0.2" match="equivalent"/>
       <import feature="org.eclipse.gef" version="3.1.1" match="equivalent"/>
    </requires>
 
diff --git a/features/org.eclipse.wst.xml_ui.feature/sourceTemplateFeature/eclipse_update_120.jpg b/features/org.eclipse.wst.xml_ui.feature/sourceTemplateFeature/eclipse_update_120.jpg
index 17bb8e3..bfdf708 100644
--- a/features/org.eclipse.wst.xml_ui.feature/sourceTemplateFeature/eclipse_update_120.jpg
+++ b/features/org.eclipse.wst.xml_ui.feature/sourceTemplateFeature/eclipse_update_120.jpg
Binary files differ
diff --git a/features/org.eclipse.wst.xml_ui.feature/sourceTemplateFeature/feature.properties b/features/org.eclipse.wst.xml_ui.feature/sourceTemplateFeature/feature.properties
index 01950e3..66ab515 100644
--- a/features/org.eclipse.wst.xml_ui.feature/sourceTemplateFeature/feature.properties
+++ b/features/org.eclipse.wst.xml_ui.feature/sourceTemplateFeature/feature.properties
@@ -15,13 +15,13 @@
 # This file should be translated.
 
 # "featureName" property - name of the feature
-featureName=Eclipse JDT Plug-in Developer Resources
+featureName=Source for XML UI feature plugins
 
 # "providerName" property - name of the company that provides the feature
 providerName=Eclipse.org
 
 # "updateSiteName" property - label for the update site
-updateSiteName=Eclipse.org update site
+updateSiteName=Web Tools Platform (WTP) Updates
 
 # "description" property - description of the feature
 description=API documentation and source code zips for Eclipse Java development tools.
diff --git a/features/org.eclipse.wst.xml_ui.feature/sourceTemplateFeature/feature.xml b/features/org.eclipse.wst.xml_ui.feature/sourceTemplateFeature/feature.xml
index 74dfcbe..4f78dc9 100644
--- a/features/org.eclipse.wst.xml_ui.feature/sourceTemplateFeature/feature.xml
+++ b/features/org.eclipse.wst.xml_ui.feature/sourceTemplateFeature/feature.xml
@@ -1,27 +1,40 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <feature
-	primary="false"
-	label="org.eclipse.wst.xml_ui.feature.source"
-	id="org.eclipse.wst.xml_ui.feature.source"
-	version="1.1.0.qualifier">
-	<description>
-		%description
-	</description>
-	<copyright url="http://www.example.com/copyright">
-		%copyright
-	</copyright>
-	<license url="license.html">%license</license>
-	
-	<includes
+      id="org.eclipse.wst.xml_ui.feature.source"
+      label="%featureName"
+      version="1.0.2.qualifier"
+      provider-name="%providerName">
+
+   <description>
+      %description
+   </description>
+
+   <copyright>
+      %copyright
+   </copyright>
+
+   <license url="license.html">
+      %license
+   </license>
+
+   <url>
+      <update label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates/"/>
+   </url>
+
+   <includes
          id="org.eclipse.wst.xml_core.feature"
-         version="0.0.0"/>
-   	<includes
+         version="0.0.0"
+         search-location="both"/>
+
+   <includes
          id="org.eclipse.wst.xml_core.feature.source"
-         version="0.0.0"/>
-    <plugin
+         version="0.0.0"
+         search-location="both"/>
+
+   <plugin
          id="org.eclipse.wst.xml_ui.feature.source"
          download-size="0"
          install-size="0"
-         version="0.0.0"/>   
-                          
+         version="0.0.0"/>
+
 </feature>
diff --git a/features/org.eclipse.wst.xml_ui.feature/sourceTemplatePlugin/about.properties b/features/org.eclipse.wst.xml_ui.feature/sourceTemplatePlugin/about.properties
index 88a06c5..04e10ea 100644
--- a/features/org.eclipse.wst.xml_ui.feature/sourceTemplatePlugin/about.properties
+++ b/features/org.eclipse.wst.xml_ui.feature/sourceTemplatePlugin/about.properties
@@ -16,7 +16,7 @@
 #
 # Do not translate any values surrounded by {}
 
-blurb=Web Standard Tools SDK\n\
+blurb=Web Standard Tools - XML UI\n\
 \n\
 Version: {featureVersion}\n\
 Build id: {0}\n\
diff --git a/features/org.eclipse.wst.xml_ui.feature/sourceTemplatePlugin/eclipse32.gif b/features/org.eclipse.wst.xml_ui.feature/sourceTemplatePlugin/eclipse32.gif
index 0282f5d..e6ad7cc 100644
--- a/features/org.eclipse.wst.xml_ui.feature/sourceTemplatePlugin/eclipse32.gif
+++ b/features/org.eclipse.wst.xml_ui.feature/sourceTemplatePlugin/eclipse32.gif
Binary files differ
diff --git a/features/org.eclipse.wst.xml_ui.feature/sourceTemplatePlugin/plugin.properties b/features/org.eclipse.wst.xml_ui.feature/sourceTemplatePlugin/plugin.properties
index 0e83dbb..29b5f4d 100644
--- a/features/org.eclipse.wst.xml_ui.feature/sourceTemplatePlugin/plugin.properties
+++ b/features/org.eclipse.wst.xml_ui.feature/sourceTemplatePlugin/plugin.properties
@@ -8,5 +8,5 @@
 # Contributors:
 #     IBM Corporation - initial API and implementation
 ###############################################################################
-pluginName=Web Standard Tools SDK - WST XML Component
+pluginName=Web Standard Tools - XML UI Source
 providerName=Eclipse.org
diff --git a/features/org.eclipse.wst.xml_userdoc.feature/build.properties b/features/org.eclipse.wst.xml_userdoc.feature/build.properties
index 201c94e..d6a4dce 100644
--- a/features/org.eclipse.wst.xml_userdoc.feature/build.properties
+++ b/features/org.eclipse.wst.xml_userdoc.feature/build.properties
@@ -1,7 +1,8 @@
 bin.includes = feature.xml,\
                eclipse_update_120.jpg,\
                epl-v10.html,\
-               license.html
+               license.html,\
+               feature.properties
 src.includes = license.html,\
                feature.xml,\
                epl-v10.html,\
diff --git a/features/org.eclipse.wst.xml_userdoc.feature/feature.properties b/features/org.eclipse.wst.xml_userdoc.feature/feature.properties
new file mode 100644
index 0000000..7a82f0e
--- /dev/null
+++ b/features/org.eclipse.wst.xml_userdoc.feature/feature.properties
@@ -0,0 +1,130 @@
+###############################################################################
+# Copyright (c) 2006 IBM Corporation 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:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+# feature.properties
+# contains externalized strings for feature.xml
+# "%foo" in feature.xml corresponds to the key "foo" in this file
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file should be translated.
+
+# "featureName" property - name of the feature
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse.org
+
+# "updateSiteName" property - label for the update site
+updateSiteName=Web Tools Platform (WTP) Updates
+
+# "description" property - description of the feature
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
+March 17, 2005\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
+is provided to you under the terms and conditions of the Eclipse Public\n\
+License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
+Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse.org CVS\n\
+repository ("Repository") in CVS modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+   - Content may be structured and packaged into modules to facilitate delivering,\n\
+     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+     plug-in fragments ("Fragments"), and features ("Features").\n\
+   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
+     in a directory named "plugins".\n\
+   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+Features may also include other Features ("Included Features"). Files named\n\
+"feature.xml" may contain a list of the names and version numbers of\n\
+Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+   - The top-level (root) directory\n\
+   - Plug-in and Fragment directories\n\
+   - Inside Plug-ins and Fragments packaged as JARs\n\
+   - Sub-directories of the directory named "src" of certain Plug-ins\n\
+   - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Eclipse Update Manager, you must agree to a license ("Feature Update\n\
+License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties". Such Abouts,\n\
+Feature Licenses and Feature Update Licenses contain the terms and\n\
+conditions (or references to such terms and conditions) that govern your\n\
+use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
+    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use,\n\
+and re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/features/org.eclipse.wst.xml_userdoc.feature/feature.xml b/features/org.eclipse.wst.xml_userdoc.feature/feature.xml
index 7360755..bd7e7b0 100644
--- a/features/org.eclipse.wst.xml_userdoc.feature/feature.xml
+++ b/features/org.eclipse.wst.xml_userdoc.feature/feature.xml
@@ -1,19 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <feature
       id="org.eclipse.wst.xml_userdoc.feature"
-      label="org.eclipse.wst.xml_userdoc.feature"
-      version="1.0.0.qualifier">
+      label="WTP XML User Documentation"
+      version="1.0.2.qualifier"
+      provider-name="%providerName">
 
    <description>
       %description
    </description>
 
-
-
    <license url="license.html">
       %license
    </license>
 
+   <url>
+      <update label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates/"/>
+   </url>
+
    <plugin
          id="org.eclipse.wst.dtdeditor.doc.user"
          download-size="0"