This commit was manufactured by cvs2svn to create tag
'v200603282200premerge'.
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/AttrImplForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/AttrImplForJSP.java
deleted file mode 100644
index bb28794..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/AttrImplForJSP.java
+++ /dev/null
@@ -1,35 +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.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.jst.jsp.core.model.parser.XMLJSPRegionContexts;
-import org.eclipse.wst.xml.core.internal.document.AttrImpl;
-import org.w3c.dom.Document;
-
-public class AttrImplForJSP extends AttrImpl {
-
-	protected boolean isNestedLanguageOpening(String regionType) {
-		boolean result = regionType == XMLJSPRegionContexts.JSP_SCRIPTLET_OPEN || regionType == XMLJSPRegionContexts.JSP_EXPRESSION_OPEN || regionType == XMLJSPRegionContexts.JSP_DECLARATION_OPEN || regionType == XMLJSPRegionContexts.JSP_DIRECTIVE_OPEN;
-		return result;
-	}
-	protected void setOwnerDocument(Document ownerDocument) {
-		super.setOwnerDocument(ownerDocument);
-	}
-	protected void setName(String name) {
-		super.setName(name);
-	}
-	protected void setNamespaceURI(String namespaceURI) {
-		super.setNamespaceURI(namespaceURI);
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/CommentImplForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/CommentImplForJSP.java
deleted file mode 100644
index 2dd6446..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/CommentImplForJSP.java
+++ /dev/null
@@ -1,33 +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.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.jst.jsp.core.model.parser.XMLJSPRegionContexts;
-import org.eclipse.wst.xml.core.internal.document.CommentImpl;
-import org.w3c.dom.Document;
-
-public class CommentImplForJSP extends CommentImpl {
-	protected boolean isNestedCommentClose(String regionType) {
-		boolean result = regionType == XMLJSPRegionContexts.JSP_COMMENT_CLOSE;
-		return result;
-	}
-
-	protected boolean isNestedCommentOpenClose(String regionType) {
-		boolean result = regionType == XMLJSPRegionContexts.JSP_COMMENT_OPEN || regionType == XMLJSPRegionContexts.JSP_COMMENT_CLOSE;
-		return result;
-	}
-
-	protected void setOwnerDocument(Document ownerDocument) {
-		super.setOwnerDocument(ownerDocument);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/DOMDocumentForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/DOMDocumentForJSP.java
deleted file mode 100644
index e32f151..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/DOMDocumentForJSP.java
+++ /dev/null
@@ -1,120 +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.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.wst.html.core.document.DocumentStyleImpl;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Comment;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-
-public class DOMDocumentForJSP extends DocumentStyleImpl {
-
-	/**
-	 * 
-	 */
-	public DOMDocumentForJSP() {
-		super();
-	}
-
-	/**
-	 * @param that
-	 */
-	protected DOMDocumentForJSP(DocumentImpl that) {
-		super(that);
-	}
-	/**
-	 * cloneNode method
-	 * @return org.w3c.dom.Node
-	 * @param deep boolean
-	 */
-	public Node cloneNode(boolean deep) {
-		DOMDocumentForJSP cloned = new DOMDocumentForJSP(this);
-		if (deep)
-			cloned.importChildNodes(this, true);
-		return cloned;
-	}
-	/**
-	 * createElement method
-	 * 
-	 * @return org.w3c.dom.Element
-	 * @param tagName
-	 *            java.lang.String
-	 */
-	public Element createElement(String tagName) throws DOMException {
-		checkTagNameValidity(tagName);
-
-		ElementImplForJSP element = new ElementImplForJSP();
-		element.setOwnerDocument(this);
-		element.setTagName(tagName);
-		return element;
-	}
-	/**
-	 * createComment method
-	 * 
-	 * @return org.w3c.dom.Comment
-	 * @param data
-	 *            java.lang.String
-	 */
-	public Comment createComment(String data) {
-		CommentImplForJSP comment = new CommentImplForJSP();
-		comment.setOwnerDocument(this);
-		if (data != null)
-			comment.setData(data);
-		return comment;
-	}
-
-	/**
-	 * createAttribute method
-	 * 
-	 * @return org.w3c.dom.Attr
-	 * @param name
-	 *            java.lang.String
-	 */
-	public Attr createAttribute(String name) throws DOMException {
-		AttrImplForJSP attr = new AttrImplForJSP();
-		attr.setOwnerDocument(this);
-		attr.setName(name);
-		return attr;
-	}
-
-	/**
-	 */
-	public Attr createAttributeNS(String uri, String name) throws DOMException {
-		AttrImplForJSP attr = new AttrImplForJSP();
-		attr.setOwnerDocument(this);
-		attr.setName(name);
-		attr.setNamespaceURI(uri);
-		return attr;
-	}
-	/**
-	 * createTextNode method
-	 * 
-	 * @return org.w3c.dom.Text
-	 * @param data
-	 *            java.lang.String
-	 */
-	public Text createTextNode(String data) {
-		TextImplForJSP text = new TextImplForJSP();
-		text.setOwnerDocument(this);
-		text.setData(data);
-		return text;
-	}
-	protected void setModel(XMLModel model) {
-		super.setModel(model);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/DOMModelForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/DOMModelForJSP.java
deleted file mode 100644
index f6ca49d..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/DOMModelForJSP.java
+++ /dev/null
@@ -1,45 +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.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.wst.html.core.document.XMLStyleModelImpl;
-import org.eclipse.wst.xml.core.internal.document.XMLModelParser;
-import org.eclipse.wst.xml.core.internal.document.XMLModelUpdater;
-import org.w3c.dom.Document;
-
-public class DOMModelForJSP extends XMLStyleModelImpl {
-
-	/**
-	 * 
-	 */
-	public DOMModelForJSP() {
-		super();
-		// remember, the document is created in super constructor, 
-		// via internalCreateDocument
-	}
-	/**
-	 * createDocument method
-	 * @return org.w3c.dom.Document
-	 */
-	protected Document internalCreateDocument() {
-		DOMDocumentForJSP document = new DOMDocumentForJSP();
-		document.setModel(this);
-		return document;
-	}
-	protected XMLModelParser createModelParser() {
-		return new NestedDOMModelParser(this);
-	}
-	protected XMLModelUpdater createModelUpdater() {
-		return new NestDOMModelUpdater(this);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/ElementImplForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/ElementImplForJSP.java
deleted file mode 100644
index ee70522..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/ElementImplForJSP.java
+++ /dev/null
@@ -1,69 +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.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.jst.jsp.core.model.parser.XMLJSPRegionContexts;
-import org.eclipse.wst.html.core.document.ElementStyleImpl;
-import org.eclipse.wst.xml.core.internal.document.ElementImpl;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-public class ElementImplForJSP extends ElementStyleImpl {
-	/**
-	 * 
-	 */
-	public ElementImplForJSP() {
-		super();
-	}
-
-	/**
-	 * @param that
-	 */
-	public ElementImplForJSP(ElementImpl that) {
-		super(that);
-	}
-
-	protected boolean isNestedEndTag(String regionType) {
-		boolean result = regionType == XMLJSPRegionContexts.JSP_ROOT_TAG_NAME || regionType == XMLJSPRegionContexts.JSP_DIRECTIVE_NAME;
-		return result;
-	}
-
-	protected boolean isNestedClosed(String regionType) {
-		boolean result = (regionType == XMLJSPRegionContexts.JSP_CLOSE || regionType == XMLJSPRegionContexts.JSP_DIRECTIVE_CLOSE);
-		return result;
-	}
-
-	protected boolean isNestedClosedComment(String regionType) {
-		boolean result = regionType == XMLJSPRegionContexts.JSP_COMMENT_CLOSE;
-		return result;
-	}
-
-	protected boolean isClosedNestedDirective(String regionType) {
-		boolean result = regionType == XMLJSPRegionContexts.JSP_DIRECTIVE_CLOSE;
-		return result;
-	}
-
-	protected void setOwnerDocument(Document ownerDocument) {
-		super.setOwnerDocument(ownerDocument);
-	}
-
-	protected void setTagName(String tagName) {
-		super.setTagName(tagName);
-	}
-	public Node cloneNode(boolean deep) {
-		ElementImpl cloned = new ElementImplForJSP(this);
-		if (deep)
-			cloneChildNodes(cloned, deep);
-		return cloned;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/NestDOMModelUpdater.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/NestDOMModelUpdater.java
deleted file mode 100644
index ad7852e..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/NestDOMModelUpdater.java
+++ /dev/null
@@ -1,34 +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.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.jst.jsp.core.model.parser.XMLJSPRegionContexts;
-import org.eclipse.wst.xml.core.internal.document.XMLModelImpl;
-import org.eclipse.wst.xml.core.internal.document.XMLModelUpdater;
-
-
-public class NestDOMModelUpdater extends XMLModelUpdater {
-
-	/**
-	 * @param model
-	 */
-	public NestDOMModelUpdater(XMLModelImpl model) {
-		super(model);
-	}
-
-	protected boolean isNestedTagClose(String regionType) {
-		boolean result = regionType == XMLJSPRegionContexts.JSP_CLOSE || regionType == XMLJSPRegionContexts.JSP_DIRECTIVE_CLOSE;
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/NestedDOMModelParser.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/NestedDOMModelParser.java
deleted file mode 100644
index ae504e1..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/NestedDOMModelParser.java
+++ /dev/null
@@ -1,82 +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.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.jst.jsp.core.model.parser.XMLJSPRegionContexts;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.xml.core.document.JSPTag;
-import org.eclipse.wst.xml.core.internal.document.XMLModelImpl;
-import org.eclipse.wst.xml.core.internal.document.XMLModelParser;
-
-public class NestedDOMModelParser extends XMLModelParser {
-
-	/**
-	 * @param model
-	 */
-	public NestedDOMModelParser(XMLModelImpl model) {
-		super(model);
-	}
-
-	protected boolean isNestedCommentOpen(String regionType) {
-		boolean result = regionType == XMLJSPRegionContexts.JSP_COMMENT_OPEN;
-		return result;
-	}
-
-	protected boolean isNestedCommentText(String regionType) {
-		boolean result = regionType == XMLJSPRegionContexts.JSP_COMMENT_TEXT;
-		return result;
-	}
-
-	protected boolean isNestedContent(String regionType) {
-		boolean result = regionType == XMLJSPRegionContexts.JSP_CONTENT;
-		return result;
-	}
-
-	protected boolean isNestedTag(String regionType) {
-		boolean result = regionType == XMLJSPRegionContexts.JSP_SCRIPTLET_OPEN || regionType == XMLJSPRegionContexts.JSP_EXPRESSION_OPEN || regionType == XMLJSPRegionContexts.JSP_DECLARATION_OPEN || regionType == XMLJSPRegionContexts.JSP_DIRECTIVE_OPEN || regionType == XMLJSPRegionContexts.JSP_CLOSE;
-		return result;
-	}
-
-	protected boolean isNestedTagName(String regionType) {
-		boolean result = regionType == XMLJSPRegionContexts.JSP_ROOT_TAG_NAME || regionType == XMLJSPRegionContexts.JSP_DIRECTIVE_NAME;
-		return result;
-	}
-
-	protected String computeNestedTag(String regionType, String tagName, IStructuredDocumentRegion structuredDocumentRegion, ITextRegion region) {
-		String resultTagName = tagName;
-		if (regionType == XMLJSPRegionContexts.JSP_SCRIPTLET_OPEN) {
-			resultTagName = JSPTag.JSP_SCRIPTLET;
-		}
-		else if (regionType == XMLJSPRegionContexts.JSP_EXPRESSION_OPEN) {
-			resultTagName = JSPTag.JSP_EXPRESSION;
-		}
-		else if (regionType == XMLJSPRegionContexts.JSP_DECLARATION_OPEN) {
-			resultTagName = JSPTag.JSP_DECLARATION;
-		}
-		else if (regionType == XMLJSPRegionContexts.JSP_DIRECTIVE_OPEN) {
-			resultTagName = JSPTag.JSP_DIRECTIVE;
-		}
-		else if (regionType == XMLJSPRegionContexts.JSP_DIRECTIVE_NAME) {
-			resultTagName += '.';
-			resultTagName += structuredDocumentRegion.getText(region);
-		}
-		return resultTagName;
-	}
-
-	protected boolean isNestedTagClose(String regionType) {
-		boolean result = regionType == XMLJSPRegionContexts.JSP_CLOSE;
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/TextImplForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/TextImplForJSP.java
deleted file mode 100644
index b682cac..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/TextImplForJSP.java
+++ /dev/null
@@ -1,28 +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.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.jst.jsp.core.model.parser.XMLJSPRegionContexts;
-import org.eclipse.wst.xml.core.internal.document.TextImpl;
-import org.w3c.dom.Document;
-
-public class TextImplForJSP extends TextImpl {
-	protected boolean isNotNestedContent(String regionType) {
-		boolean result = regionType != XMLJSPRegionContexts.JSP_CONTENT;
-		return result;
-	}
-	protected void setOwnerDocument(Document ownerDocument) {
-		super.setOwnerDocument(ownerDocument);
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/model/parser/XMLJSPRegionContexts.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/model/parser/XMLJSPRegionContexts.java
deleted file mode 100644
index 5e098db..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/model/parser/XMLJSPRegionContexts.java
+++ /dev/null
@@ -1,56 +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
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.jst.jsp.core.model.parser;
-
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-
-
-/**
- *
- */
-
-public interface XMLJSPRegionContexts extends XMLRegionContext {
-	public static final String JSP_CLOSE = "JSP_CLOSE"; //$NON-NLS-1$
-	public static final String JSP_COMMENT_CLOSE = "JSP_COMMENT_CLOSE"; //$NON-NLS-1$
-
-	public static final String JSP_COMMENT_OPEN = "JSP_COMMENT_OPEN"; //$NON-NLS-1$
-	public static final String JSP_COMMENT_TEXT = "JSP_COMMENT_TEXT"; //$NON-NLS-1$
-
-	public static final String JSP_CONTENT = "JSP_CONTENT"; //$NON-NLS-1$
-	public static final String JSP_DECLARATION_OPEN = "JSP_DECLARATION_OPEN"; //$NON-NLS-1$
-	public static final String JSP_DIRECTIVE_CLOSE = "JSP_DIRECTIVE_CLOSE"; //$NON-NLS-1$
-	public static final String JSP_DIRECTIVE_NAME = "JSP_DIRECTIVE_NAME"; //$NON-NLS-1$
-
-	public static final String JSP_DIRECTIVE_OPEN = "JSP_DIRECTIVE_OPEN"; //$NON-NLS-1$
-	public static final String JSP_EL_CLOSE = "JSP_EL_CLOSE"; //$NON-NLS-1$
-	public static final String JSP_EL_CONTENT = "JSP_EL_CONTENT"; //$NON-NLS-1$
-	public static final String JSP_EL_DQUOTE = "JSP_EL_DQUOTE"; //$NON-NLS-1$
-
-	public static final String JSP_EL_OPEN = "JSP_EL_OPEN"; //$NON-NLS-1$
-	public static final String JSP_EL_QUOTED_CONTENT = "JSP_EL_QUOTED_CONTENT"; //$NON-NLS-1$
-	public static final String JSP_EL_SQUOTE = "JSP_EL_SQUOTE"; //$NON-NLS-1$
-	public static final String JSP_EXPRESSION_OPEN = "JSP_EXPRESSION_OPEN"; //$NON-NLS-1$
-
-	public static final String JSP_ROOT_TAG_NAME = "JSP_ROOT_TAG_NAME"; //$NON-NLS-1$
-
-	public static final String JSP_SCRIPTLET_OPEN = "JSP_SCRIPTLET_OPEN"; //$NON-NLS-1$
-	public static final String JSP_VBL_CLOSE = "JSP_VBL_CLOSE"; //$NON-NLS-1$
-	public static final String JSP_VBL_CONTENT = "JSP_VBL_CONTENT"; //$NON-NLS-1$
-	public static final String JSP_VBL_DQUOTE = "JSP_VBL_DQUOTE"; //$NON-NLS-1$
-	public static final String JSP_VBL_OPEN = "JSP_VBL_OPEN"; //$NON-NLS-1$
-	public static final String JSP_VBL_QUOTED_CONTENT = "JSP_VBL_QUOTED_CONTENT"; //$NON-NLS-1$
-	public static final String JSP_VBL_SQUOTE = "JSP_VBL_SQUOTE"; //$NON-NLS-1$
-	public static final String XML_TAG_ATTRIBUTE_VALUE_DQUOTE = "XML_TAG_ATTRIBUTE_VALUE_DQUOTE"; //$NON-NLS-1$
-
-	public static final String XML_TAG_ATTRIBUTE_VALUE_SQUOTE = "XML_TAG_ATTRIBUTE_VALUE_SQUOTE"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/.classpath b/bundles/org.eclipse.wst.xsd.ui/.classpath
new file mode 100644
index 0000000..b3381db
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/.classpath
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src-validation"/>
+	<classpathentry kind="src" path="src-refactor"/>
+	<classpathentry kind="src" path="src-adt"/>
+	<classpathentry kind="src" path="src-adt-xsd"/>
+	<classpathentry kind="src" path="src-common"/>
+	<classpathentry kind="src" path="src-adt-xsd-typeviz"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src-search"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.wst.xsd.ui/.cvsignore b/bundles/org.eclipse.wst.xsd.ui/.cvsignore
new file mode 100644
index 0000000..7b94482
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/.cvsignore
@@ -0,0 +1,7 @@
+bin
+xsdeditor.jar
+build.xml
+temp.folder
+org.eclipse.wst.xsd.ui_1.0.0.jar
+@dot
+src.zip
diff --git a/bundles/org.eclipse.wst.xsd.ui/.project b/bundles/org.eclipse.wst.xsd.ui/.project
new file mode 100644
index 0000000..aab3824
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.wst.xsd.ui</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.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..02e064f
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,69 @@
+#Mon Feb 27 17:20:28 EST 2006

+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.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

+org.eclipse.jdt.core.compiler.debug.lineNumber=generate

+org.eclipse.jdt.core.compiler.debug.localVariable=generate

+org.eclipse.jdt.core.compiler.debug.sourceFile=generate

+org.eclipse.jdt.core.compiler.doc.comment.support=enabled

+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100

+org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning

+org.eclipse.jdt.core.compiler.problem.deprecation=warning

+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled

+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled

+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore

+org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning

+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore

+org.eclipse.jdt.core.compiler.problem.finalParameterBound=error

+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning

+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning

+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning

+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning

+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore

+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore

+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled

+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled

+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private

+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore

+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning

+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore

+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled

+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public

+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore

+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled

+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private

+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning

+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning

+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning

+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore

+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning

+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore

+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled

+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning

+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore

+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore

+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore

+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore

+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore

+org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=error

+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=ignore

+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=ignore

+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=error

+org.eclipse.jdt.core.compiler.source=1.3

+org.eclipse.jdt.core.incompatibleJDKLevel=ignore

+org.eclipse.jdt.core.incompleteClasspath=error

diff --git a/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..a232d89
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,3 @@
+#Mon Feb 27 17:20:24 EST 2006
+eclipse.preferences.version=1
+internal.default.compliance=default
diff --git a/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..179abb3
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,12 @@
+#Fri Dec 10 00:50:26 EST 2004

+compilers.p.unused-element-or-attribute=0

+compilers.p.unresolved-ex-points=0

+compilers.p.unknown-element=0

+compilers.p.unknown-resource=0

+compilers.p.unknown-class=0

+compilers.p.unknown-attribute=0

+compilers.p.no-required-att=0

+eclipse.preferences.version=1

+compilers.p.unresolved-import=0

+compilers.p.illegal-att-value=0

+compilers.use-project=true

diff --git a/bundles/org.eclipse.wst.xsd.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.xsd.ui/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..23de916
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,89 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %_UI_PLUGIN_NAME
+Bundle-SymbolicName: org.eclipse.wst.xsd.ui; singleton:=true
+Bundle-Version: 1.0.100.qualifier
+Bundle-Activator: org.eclipse.wst.xsd.editor.XSDEditorPlugin
+Bundle-Vendor: %Bundle-Vendor.0
+Bundle-Localization: plugin
+Export-Package: org.eclipse.wst.xsd.adt.actions,
+ org.eclipse.wst.xsd.adt.design,
+ org.eclipse.wst.xsd.adt.design.directedit,
+ org.eclipse.wst.xsd.adt.design.editparts,
+ org.eclipse.wst.xsd.adt.design.editparts.model,
+ org.eclipse.wst.xsd.adt.design.editpolicies,
+ org.eclipse.wst.xsd.adt.design.figures,
+ org.eclipse.wst.xsd.adt.edit,
+ org.eclipse.wst.xsd.adt.editor,
+ org.eclipse.wst.xsd.adt.facade,
+ org.eclipse.wst.xsd.adt.outline,
+ org.eclipse.wst.xsd.adt.properties,
+ org.eclipse.wst.xsd.adt.typeviz.design.figures,
+ org.eclipse.wst.xsd.adt.typeviz.design.layouts,
+ org.eclipse.wst.xsd.editor,
+ org.eclipse.wst.xsd.editor.internal.actions,
+ org.eclipse.wst.xsd.editor.internal.adapters,
+ org.eclipse.wst.xsd.editor.internal.design.editparts,
+ org.eclipse.wst.xsd.editor.internal.design.editparts.model,
+ org.eclipse.wst.xsd.editor.internal.design.figures,
+ org.eclipse.wst.xsd.editor.internal.design.layouts,
+ org.eclipse.wst.xsd.editor.internal.dialogs,
+ org.eclipse.wst.xsd.editor.internal.icons,
+ org.eclipse.wst.xsd.editor.internal.navigation,
+ org.eclipse.wst.xsd.editor.internal.preferences,
+ org.eclipse.wst.xsd.editor.internal.search,
+ org.eclipse.wst.xsd.editor.internal.utils,
+ org.eclipse.wst.xsd.ui.common.actions,
+ org.eclipse.wst.xsd.ui.common.commands,
+ org.eclipse.wst.xsd.ui.common.properties.providers,
+ org.eclipse.wst.xsd.ui.common.properties.sections,
+ org.eclipse.wst.xsd.ui.common.properties.sections.appinfo,
+ org.eclipse.wst.xsd.ui.common.util,
+ org.eclipse.wst.xsd.ui.internal.actions,
+ org.eclipse.wst.xsd.ui.internal.nsedit;x-internal:=true,
+ org.eclipse.wst.xsd.ui.internal.refactor,
+ org.eclipse.wst.xsd.ui.internal.refactor.actions;x-internal:=true,
+ org.eclipse.wst.xsd.ui.internal.refactor.rename,
+ org.eclipse.wst.xsd.ui.internal.refactor.structure;x-internal:=true,
+ org.eclipse.wst.xsd.ui.internal.refactor.util;x-internal:=true,
+ org.eclipse.wst.xsd.ui.internal.refactor.wizard;x-internal:=true,
+ org.eclipse.wst.xsd.ui.internal.search;x-internal:=true,
+ org.eclipse.wst.xsd.ui.internal.search.actions;x-internal:=true,
+ org.eclipse.wst.xsd.ui.internal.text;x-internal:=true,
+ org.eclipse.wst.xsd.ui.internal.util;x-internal:=true,
+ org.eclipse.wst.xsd.ui.internal.validation;x-internal:=true,
+ org.eclipse.wst.xsd.ui.internal.widgets;x-internal:=true,
+ org.eclipse.wst.xsd.ui.internal.wizards;x-internal:=true
+Require-Bundle: org.eclipse.ui.views.properties.tabbed,
+ org.apache.xerces,
+ org.eclipse.core.runtime,
+ 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,
+ org.eclipse.jface.text,
+ org.eclipse.xsd,
+ org.eclipse.gef,
+ org.eclipse.draw2d,
+ org.eclipse.xsd,
+ org.eclipse.jface,
+ org.eclipse.ui.editors,
+ org.eclipse.ui.workbench.texteditor,
+ org.eclipse.ui,
+ org.eclipse.ui.views,
+ org.eclipse.ui.ide,
+ org.eclipse.emf.ecore.edit,
+ org.eclipse.core.resources,
+ org.eclipse.xsd.edit,
+ org.eclipse.emf.edit,
+ org.eclipse.emf.edit.ui,
+ org.eclipse.wst.validation,
+ org.eclipse.ltk.core.refactoring,
+ org.eclipse.ltk.ui.refactoring,
+ org.eclipse.wst.xsd.core,
+ org.eclipse.search,
+ com.ibm.icu
+Eclipse-LazyStart: true
diff --git a/bundles/org.eclipse.wst.xsd.ui/about.html b/bundles/org.eclipse.wst.xsd.ui/about.html
new file mode 100644
index 0000000..6f6b96c
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/about.html
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html>
+<head>
+<title>About</title>
+<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>February 24, 2005</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/build.properties b/bundles/org.eclipse.wst.xsd.ui/build.properties
new file mode 100644
index 0000000..2df31de
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/build.properties
@@ -0,0 +1,26 @@
+###############################################################################
+# 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
+###############################################################################
+source.. = src-validation/,\
+           src-search/,\
+           src-refactor/,\
+           src-adt/,\
+           src-adt-xsd/,\
+           src-adt-xsd-typeviz/,\
+           src-common/
+bin.includes = .,\
+               plugin.xml,\
+               icons/,\
+               plugin.properties,\
+               META-INF/,\
+               about.html
+src.includes = build.properties,\
+               component.xml
+output.. = bin/
diff --git a/bundles/org.eclipse.wst.xsd.ui/component.xml b/bundles/org.eclipse.wst.xsd.ui/component.xml
new file mode 100644
index 0000000..294443a
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/component.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component xmlns="http://eclipse.org/wtp/releng/tools/component-model"
+	name="org.eclipse.wst.xsd">
+	<component-depends unrestricted="true"></component-depends>
+	<plugin	id="org.eclipse.wst.xsd.ui" fragment="false" />
+	<plugin	id="org.eclipse.wst.xsd.core" fragment="false" />
+</component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/XSDFile.gif b/bundles/org.eclipse.wst.xsd.ui/icons/XSDFile.gif
new file mode 100644
index 0000000..3900f1b
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/icons/XSDFile.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/annotationsheader.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/annotationsheader.gif
new file mode 100644
index 0000000..9bfb682
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/annotationsheader.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/attributegroupsheader.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/attributegroupsheader.gif
new file mode 100644
index 0000000..e618a25
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/attributegroupsheader.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/attributesheader.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/attributesheader.gif
new file mode 100644
index 0000000..9254879
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/attributesheader.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/directivesheader.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/directivesheader.gif
new file mode 100644
index 0000000..6000cb8
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/directivesheader.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/elementsheader.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/elementsheader.gif
new file mode 100644
index 0000000..26f7206
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/elementsheader.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/groupsheader.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/groupsheader.gif
new file mode 100644
index 0000000..c9745f0
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/groupsheader.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/notationsheader.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/notationsheader.gif
new file mode 100644
index 0000000..e05c645
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/notationsheader.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_list_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_list_obj.gif
new file mode 100644
index 0000000..6e2cd93
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_list_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_restrict_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_restrict_obj.gif
new file mode 100644
index 0000000..1ebd546
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_restrict_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_union_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_union_obj.gif
new file mode 100644
index 0000000..0b01f8c
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_union_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/typesheader.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/typesheader.gif
new file mode 100644
index 0000000..3267542
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/typesheader.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/ovr16/attributeoverlay.gif b/bundles/org.eclipse.wst.xsd.ui/icons/ovr16/attributeoverlay.gif
new file mode 100644
index 0000000..1931f92
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/icons/ovr16/attributeoverlay.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/ovr16/textoverlay.gif b/bundles/org.eclipse.wst.xsd.ui/icons/ovr16/textoverlay.gif
new file mode 100644
index 0000000..d455c2b
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/icons/ovr16/textoverlay.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/plugin.properties b/bundles/org.eclipse.wst.xsd.ui/plugin.properties
new file mode 100644
index 0000000..bb3d093
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/plugin.properties
@@ -0,0 +1,837 @@
+###############################################################################
+# 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
+###############################################################################
+! Properties file for component: XMSCH - XML Tools -  XML Schema Editor
+! Packaged for translation in:  xml.zip
+
+!
+! Plugin
+!
+_UI_PLUGIN_NAME             = XML Schema Editor
+_UI_EDITOR_NAME             = XML Schema Editor
+
+_UI_ACTION_EXT_GENERATE      = &Generate
+_UI_ACTION_EXT_GENERATE_DDL  = &DDL...
+_UI_ACTION_EXT_GENERATE_DTD  = D&TD...
+_UI_ACTION_EXT_GENERATE_JAVA = &Java Beans...
+
+_UI_ACTION_EXT_GENERATE_XSD = &Generate XML Schema
+_UI_WIZARD_NAME_NEW_XSD     = XML Schema
+
+_UI_XML_TOOLS_PREFERENCE_PAGE  = XML
+_UI_XML_SCHEMA_PREFERENCE      = XML Schema Files
+
+_UI_WIZARD_NEW_XSD             = XML Schema
+_UI_CREATE_A_NEW_SCHEMA        = Create a new XML schema file
+
+! New property tabs
+_UI_LABEL_GENERAL          = General
+_UI_LABEL_ATTRIBUTES       = Attributes
+_UI_LABEL_DOCUMENTATION    = Documentation
+_UI_LABEL_TYPE_CONSTRAINTS = Constraints
+_UI_LABEL_APPLICATION_INFO = Application Info
+_UI_LABEL_EXTENSIONS       = Extensions
+_UI_LABEL_FACETS           = Facets
+_UI_LABEL_ENUMERATIONS     = Enumerations
+_UI_LABEL_NAMESPACE        = Namespace
+_UI_LABEL_ADVANCED         = Advanced
+
+_UI_LABEL_READ_ONLY     = read-only
+_UI_LABEL_KIND          = Kind:
+_UI_LABEL_VARIETY       = Variety:
+
+_UI_LABEL_APP_INFO      = App Info
+
+!
+! Schema File Window
+!
+_UI_LABEL_FILE_NAME              = File name:
+_UI_LABEL_VERSION                = Version:
+_UI_TOOLTIP_VERSION              = Convenient attribute to store version number
+_UI_LABEL_LANGUAGE               = Language:
+_UI_TOOLTIP_LANGUAGE             = Represents natural language identifiers
+_UI_GROUP_NAMESPACE              = Namespace
+_UI_LABEL_SCHEMA_PREFIX          = Prefix:
+_UI_TOOLTIP_SCHEMA_PREFIX        = The prefix associated with the current namespace.
+_UI_LABEL_TARGET_NAME_SPACE      = Target namespace:
+_UI_TOOLTIP_TARGET_NAME_SPACE    = The namespace for this schema.
+_UI_BUTTON_APPLY                 = Apply
+_UI_LABEL_ATTRIBUTE_FORM_DEFAULT = Attribute form default:
+_UI_TOOLTIP_ATTRIBUTE_FORM       = Indicates if all attributes in a schema must be qualified or not in the instance document
+_UI_LABEL_ELEMENT_FORM_DEFAULT   = Element form default:
+_UI_TOOLTIP_ELEMENT_FORM_DEFAULT = Indicates if all elements in a schema must be qualified or not in the instance document
+_UI_LABEL_BLOCK_DEFAULT          = Block default:
+_UI_TOOLTIP_BLOCK_DEFAULT        = Control derivations for every type and element in the schema
+_UI_LABEL_FINAL_DEFAULT          = Final default:
+_UI_TOOLTIP_FINAL_DEFAULT        = Control derivations for every type and element in the schema
+_UI_ACTION_DELETE_INCLUDE        = Delete
+_UI_ACTION_DELETE_NODES          = Delete Nodes
+! Note to translators: The following is the acronym for Uniform Resource Indicator
+_UI_LABEL_URI                    = URI:
+
+
+_UI_LABEL_ADD              = Add...
+_UI_LABEL_EDIT             = Edit...
+_UI_LABEL_PATTERNS         = Patterns
+_ERROR_FILE_ALREADY_EXISTS = The file name already exists: {0}
+
+!
+! Any Section
+!
+! Note to translators - translate only the word and
+_UI_LABEL_NAMESPACE_AND_PROCESS_CONTENTS = namespace and processContents
+
+!
+! minOccurs and maxOccurs section
+!
+! Note to translators - translate only the word and
+_UI_LABEL_MINOCCURS_AND_MAXOCCURS = minOccurs and maxOccurs
+
+!
+! Value Information Section
+!
+_UI_LABEL_VALUE_INFORMATION   = Value Information
+
+!
+! Notation window
+!
+_UI_NOTATION_NAME                = Name:
+_UI_NOTATION_PUBLIC              = Public:
+_UI_NOTATION_SYSTEM              = System:
+_UI_TOOLTIP_PUBLIC               = An optional public identifier
+_UI_TOOLTIP_SYSTEM               = An optional URI reference
+
+!
+! Complex Type Window
+!
+_UI_NAME                         = Name:
+_UI_ABSTRACT                     = Abstract:
+_UI_MIXED                        = Mixed:
+_UI_BLOCK                        = Block:
+_UI_FINAL                        = Final:
+
+_UI_CT_TOOLTIP_MIXED             = Indicates if type may contain mixed content
+_UI_CT_TOOLTIP_ABSTRACT          = When a complex type is declared abstract, it cannot be used in an instance document
+_UI_CT_TOOLTIP_FINAL             = You can use this to prevent further derivations
+_UI_CT_TOOLTIP_BLOCK             = You can use this to block any derivations
+
+!
+! SimpleContent and ComplexContent Window
+! 
+_UI_LABEL_DERIVED_BY            = Derived by:
+_UI_TOOLTIP_DERIVED_BY          = Derive by extension to inherit from a base type content model and add to it. Derive by restriction to restrict the content model of an existing type.
+
+!
+! Combo box items - no need to translate
+!
+_UI_COMBO_RESTRICTION           = restriction
+_UI_COMBO_EXTENSION             = extension
+
+!
+! Element & Element Ref Window
+!
+_UI_ELEMENT_NAME                 = Name:
+_UI_CHECKBOX_NILLABLE            = Nillable
+_UI_CHECKBOX_ABSTRACT            = Abstract
+_UI_SUBSTITUTION                 = Substitution group:
+_UI_MINIMUM                      = Minimum:
+_UI_MAXIMUM                      = Maximum:
+_UI_REFERENCE_NAME               = Reference name:
+
+_UI_TOOLTIP_ELEMENT_MINIMUM      = A non-negative integer that specifies the minimum number of times an element can occur.
+_UI_TOOLTIP_ELEMENT_MAXIMUM      = A non-negative integer or unbounded if there is no upper limit on the number of times the element can occur.
+_UI_TOOLTIP_ELEMENT_ABSTRACT     = When an element is declared abstract, a member of its equivalent class must appear in the instance document,
+_UI_TOOLTIP_ELEMENT_NIL          = If selected, an attribute can be included in the instance document to indicate that the element has a nil value.
+_UI_TOOLTIP_ELEMENT_SUBSTITUTION = Select the element that can be substituted by this element
+_UI_TOOLTIP_ELEMENT_FORM         = Indicates if the element is qualifed in the instance document
+_UI_TOOLTIP_ELEMENT_VALUE        = Provides a default or fixed value for the element.
+
+
+!
+! Attribute Window
+!    _UI_COMBO_BOX strings are used in code generation. 
+!    Probably don't need to be translated
+!
+_UI_COMBO_BOX_REQUIRED           = required
+_UI_COMBO_BOX_OPTIONAL           = optional
+_UI_COMBO_BOX_PROHIBITED         = prohibited
+
+_UI_FIXED                        = Fixed
+_UI_DEFAULT                      = Default
+_UI_ATTRIBUTE_NAME               = Attribute name:
+_UI_USAGE                        = Usage:
+_UI_FORM                         = Form qualification:
+_UI_VALUE                        = Value
+
+_UI_LABEL_OTHER_ATTRIBUTES       = Other Attributes
+
+_UI_TOOLTIP_ATTRIBUTE_USE        = Indicates if the attribute is required, optional, or prohibited
+_UI_TOOLTIP_ATTRIBUTE_FORM       = Indicates if the attribute is qualifed or not in the instance document
+_UI_TOOLTIP_ATTRIBUTE_VALUE      = Provides default or fixed value for the attribute. Default value only valid if Usage value is set to optional.
+
+_UI_PROCESS_CONTENTS             = Process contents:
+
+!
+! Annotation - Doc & AppInfo Window
+!
+_UI_COMMENT                      = Comment
+_UI_TOOLTIP_COMMENT              = Information useful to the user or application
+_UI_SOURCE                       = Source:
+_UI_TOOLTIP_SOURCE               = An optional URI reference to supplement the local information
+_UI_LANGUAGE                     = Language:
+_UI_TOOLTIP_LANGUAGE_ANNOTATION  = Indicate the language in which the annotation is expressed
+
+!
+! Group
+! 
+_UI_CONTENT_MODEL               = Content model
+_UI_SEQUENCE                    = Sequence
+_UI_CHOICE                      = Choice
+_UI_ALL                         = All
+
+
+!
+! Simple Type Related Facets  - appear as entries in a table - restriction on simple type
+!
+_UI_GROUP_FACETS                = Facets
+_UI_LENGTH                      = Length
+_UI_MINIMUM_LENGTH              = Minimum Length
+_UI_MAXIMUM_LENGTH              = Maximum Length
+_UI_MINIMUM_INCLUSIVE           = Minimum Inclusive
+_UI_MAXIMUM_INCLUSIVE           = Maximum Inclusive
+_UI_MINIMUM_EXCLUSIVE           = Minimum Exclusive
+_UI_MAXIMUM_EXCLUSIVE           = Maximum Exclusive
+_UI_TOTAL_DIGITS                = Total Digits
+_UI_FRACTION_DIGITS             = Fraction Digits
+_UI_WHITE_SPACE                 = White Space
+_UI_FACET_NAME                  = Name
+_UI_FACET_VALUE                 = Value
+_UI_FACET_FIXED                 = Fixed
+
+_UI_TOOLTIP_LENGTH              = The number of units of length. Must be a non-negative integer.
+_UI_TOOLTIP_MIN_LEN             = The minimum number of units of length. Must be a non-negative integer.
+_UI_TOOLTIP_MAX_LEN             = The maximum number of units of length. Must be a non-negative integer.
+_UI_TOOLTIP_MAX_INCLUSIVE       = The upper bound of the value space. The value is itself included.
+_UI_TOOLTIP_MAX_EXCLUSIVE       = The upper bound of the value space. The value is itself excluded.
+_UI_TOOLTIP_MIN_INCLUSIVE       = The lower bound of the value space. The value is itself included.
+_UI_TOOLTIP_MIN_EXCLUSIVE       = The lower bound of the value space. The value is itself excluded.
+_UI_TOOLTIP_TOTAL_DIGITS        = The maximum number of decimal digits. Must be a positive integer.
+_UI_TOOLTIP_FRACTION_DIGITS     = The maximum number of decimal digits in the fractional part. Must be a non-negative integer.
+_UI_TOOLTIP_WHITE_SPACE         = Indicates if white space should be preserved, replaced or collapsed. 
+
+_UI_TOOLTIP_PATTERN             = Constrains the value to match a specific pattern. The pattern must be a regular expression. 
+_UI_TOOLTIP_ENUM                = Constrains the value to a specified set of values. 
+
+!
+! Simple/Complex Type Selection 
+!
+_UI_LABEL_TYPE_INFORMATION          = Type information
+_UI_LABEL_BASE_TYPE                 = Base type
+_UI_LABEL_BASE_TYPE_WITH_COLON      = Base type:
+_UI_LABEL_SET_BASE_TYPE             = Set Base Type
+_UI_ACTION_SET_BASE_TYPE            = Set Base Type...
+_UI_RADIO_NONE                      = None
+_UI_RADIO_BUILT_IN_SIMPLE_TYPE      = Built-in simple type
+_UI_RADIO_USER_DEFINED_SIMPLE_TYPE  = User-defined simple type
+_UI_RADIO_USER_DEFINED_COMPLEX_TYPE = User-defined complex type
+_UI_LABEL_NEW_COMPLEX_TYPE          = New Complex Type
+_UI_LABEL_NEW_SIMPLE_TYPE           = New Simple Type
+_UI_LABEL_SET_TYPE				    = Set Type
+_UI_LABEL_SET_EXISTING_TYPE 		= Set Existing Type...
+_UI_NO_TYPE                         = **none**
+_UI_LABEL_COMPONENTS				= Components:
+_UI_LABEL_QUALIFIER					= Qualifier:
+
+_UI_LABEL_COMPONENT_NAME			   = Component Name:
+_UI_LABEL_MATCHING_COMPONENTS		   = Matching Components:
+_UI_LABEL_MATCHING_TYPES		   	   = Matching Types:
+_UI_LABEL_TYPE_NAME					   = Type Name:
+_UI_LABEL_SPECIFIED_FILE			   = Specified File
+_UI_LABEL_ENCLOSING_PROJECT			   = Enclosing Project
+_UI_LABEL_WORKSPACE					   = Workspace
+_UI_LABEL_CURRENT_RESOURCE			   = Current Resource
+_UI_LABEL_SEARCH_SCOPE				   = Search Scope
+_UI_LABEL_NARROW_SEARCH_SCOPE_RESOURCE = Use resource view to narrow search scope
+_UI_LABEL_AVAILABLE_TYPES			   = Available Types
+
+
+!
+! Combo-box value 
+! NOTE TO TRANSLATOR: Do not translate following line
+_UI_DEFAULT_ANONYMOUS               = **anonymous**
+
+!
+! Unique, Key and KeyRef window
+!
+_UI_REFERENCE_KEY                   = Reference key
+_UI_SELECTOR                        = Selector
+_UI_FIELDS                          = Fields
+
+_UI_TOOLTIP_SELECTOR_TEXT           = Specifies an XPath expression relative to instances of the current element
+_UI_TOOLTIP_FIELD_TEXT              = Specifies an XPath expression relative to each element selected by the selector
+
+_UI_ADD_BUTTON                      = Add>>
+_UI_REMOVE_BUTTON                   = <<Remove
+
+!
+! Include & Imports
+!
+_UI_LABEL_PREFIX                = Prefix:
+_UI_LABEL_NAMESPACE             = Namespace:
+
+_UI_SCHEMA_INCLUDE_DESC         = Select a schema file so that the definitions in the schema file will be available in the current schema. The target namespace of the included schema must be the same as the target namespace of the current schema.
+_UI_LABEL_SCHEMA_IMPORT_DESC    = Select a schema file from a different namespace so that its definitions can be referenced by the current schema. You must associate a prefix with the new namespace for use in the current schema.
+
+_UI_LABEL_SCHEMA_LOCATION        = Schema location:
+_UI_BUTTON_SELECT                = Select
+_UI_FILEDIALOG_SELECT_XML_SCHEMA = Select XML schema file
+_UI_FILEDIALOG_SELECT_XML_DESC   = Select an XML schema file from the Workbench projects
+_UI_FILEDIALOG_SELECT_XML_URL    = Select an XML schema file from HTTP
+
+_UI_LABEL_LOADING_XML_SCHEMA     = Loading XML Schema
+_UI_LABEL_FINISH_LOADING         = Finish Loading
+_UI_LABEL_NO_LOCATION_SPECIFIED  = No Location Specified
+
+!
+! XSD Editor
+!
+_UI_TAB_SOURCE                  = Source
+_UI_TAB_DESIGN                  = Design
+!  Note to translators: Graph is the graphic view of the XML schema
+_UI_TAB_GRAPH                   = Graph
+_UI_MENU_UNDO                   = &Undo @Ctrl+Z
+_UI_MENU_REDO                   = &Redo @Ctrl+Y
+
+!
+! Task List Related Message
+!
+_UI_REF_FILE_ERROR_DESCRIPTION      = The errors below were detected when validating the file "{0}" via the file "{1}".  In most cases these errors can be detected by validating "{2}" directly.  However it is possible that errors will only occur when {2} is validated in the context of {3}.
+_UI_REF_FILE_ERROR_PUSH_HELP        = Push the help button below to read more.
+_UI_REF_FILE_ERROR_MESSAGE          = Referenced file contains errors ({0}).  For more information, right click on the message and select "Show Details..."
+_UI_REF_FILE_SHOW_DETAILS           = Show Details...
+
+
+!
+! XSDEditor Menu bar contributor
+!
+_UI_MENU_GENERATE_JAVA              = Generate &Java Beans...
+_UI_MENU_GENERATE_DTD               = Generate &DTD...
+_UI_MENU_GENERATE_SAMPLE_XML        = Generate XM&L...
+_UI_MENU_XSD_EDITOR                 = &XSD
+_UI_MENU_VALIDATE_XML               = &Validate XML Schema
+_UI_MENU_VALIDATE_XML_TOOLTIP       = Validate the current state of the XML Schema
+_UI_MENU_GENERATE_JAVA_TOOLTIP      = Generate Java beans for the XML Schema
+_UI_MENU_GENERATE_DTD_TOOLTIP       = Generate a DTD from the XML Schema
+_UI_MENU_GENERATE_SAMPLE_XML_TOOLTIP = Generate an XML from the XML Schema
+_UI_MENU_RELOAD_DEPENDENCIES_TOOLTIP = Reload Dependencies
+_UI_MENU_RELOAD_DEPENDENCIES = &Reload Dependencies
+
+!
+! Preference Page
+!
+_UI_TEXT_INDENT_LABEL                 = Indentation
+_UI_TEXT_INDENT_SPACES_LABEL          = &Number of spaces: 
+_UI_TEXT_XSD_NAMESPACE_PREFIX         = XML schema language
+_UI_TEXT_XSD_DEFAULT_PREFIX           = XML schema language constructs &prefix:
+_UI_QUALIFY_XSD                       = &Qualify XML schema language constructs
+_UI_SEPARATE_DESIGN_AND_SOURCE_VIEW   = Separate Source, Design and Graph view
+_UI_COMBINED_DESIGN_AND_SOURCE_VIEW   = Combined Source or Graph view with Design view 
+_UI_LABEL_EDITOR_LAYOUT               = Editor Layout
+_UI_PREF_DESIGN_VIEW_LAYOUT           = Design View Location
+_UI_PREF_DESIGN_BOTTOM                = Below
+_UI_PREF_DESIGN_RIGHT                 = Right
+_UI_TEXT_XSD_DEFAULT_TARGET_NAMESPACE = Default Target Namespace:
+
+!
+! Content Outline View action
+! NOTE TO TRANSLATOR: Do not translate the word(s) following "Add" on each line in
+!   this section i.e. Annotation, Documentation, AppInfo  These words are XML Schema keywords.
+_UI_ACTION_DELETE                  = D&elete
+_UI_ACTION_ADD_ANNOTATION          = Add &Annotation
+_UI_ACTION_ADD_DOC                 = Add &Documentation
+_UI_ACTION_ADD_APP_INFO            = Add A&ppInfo
+_UI_ACTION_ADD_GLOBAL_ELEMENT      = Add Glob&al Element
+_UI_ACTION_ADD_KEY                 = Add &Key
+_UI_ACTION_ADD_KEY_REF             = Add Key Re&f
+_UI_ACTION_ADD_UNIQUE              = Add Uni&que
+_UI_ACTION_ADD_GROUP               = Add G&roup
+_UI_ADD_GROUP_REF                  = Add Gr&oup Ref
+_UI_ACTION_ADD_CONTENT_MODEL       = Add Content &Model
+_UI_ACTION_ADD_ELEMENT             = Add &Element
+_UI_ACTION_ADD_ELEMENT_REF         = Add E&lement Ref
+_UI_ACTION_ADD_SIMPLE_TYPE         = Add &Simple Type
+_UI_ACTION_ADD_PATTERN             = Add &Pattern
+_UI_ACTION_ADD_ENUM                = Add En&umeration
+_UI_ACTION_ADD_ENUMS               = Add Enu&merations...
+_UI_ACTION_ADD_COMPLEX_TYPE        = Add Complex &Type
+_UI_ACTION_ADD_COMPLEX_CONTENT     = Add Comple&x Content
+_UI_ACTION_ADD_SIMPLE_CONTENT      = Add Simple &Content
+_UI_ACTION_ADD_ATTRIBUTE           = Add Attri&bute
+_UI_ACTION_ADD_ATTRIBUTE_GROUP     = Add Attr&ibute Group
+_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF = Add A&ttribute Group Ref
+_UI_ACTION_ADD_INCLUDE             = Add In&clude
+_UI_ACTION_ADD_IMPORT              = Add &Import
+_UI_ACTION_ADD_REDEFINE            = Add Re&define
+_UI_ACTION_ADD_NOTATION            = Add &Notation
+_UI_ACTION_ADD_ANY_ELEMENT         = Add An&y
+_UI_ACTION_ADD_ANY_ATTRIBUTE       = Add &Any Attribute
+_UI_ACTION_ADD_GLOBAL_ATTRIBUTE    = Add &Global Attribute
+_UI_ACTION_ADD_ATTRIBUTE_REFERENCE = Add Attrib&ute Ref
+_UI_ACTION_ADD_RESTRICTION         = Add Re&striction
+_UI_ACTION_ADD_UNION               = Add U&nion
+_UI_ACTION_ADD_LIST                = Add &List
+_UI_ACTION_DELETE_GROUP_SCOPE      = D&elete
+_UI_ACTION_ADD_CHOICE              = Add &Choice
+_UI_ACTION_ADD_SEQUENCE            = Add Se&quence
+_UI_ACTION_ADD_ALL                 = Add &All
+_UI_ACTION_ADD_EXTENSION           = Add E&xtension
+_UI_ACTION_ADD_SELECTOR            = Add &Selector
+_UI_ACTION_ADD_FIELD               = Add &Field
+! NOTE TO TRANSLATOR: Translate Add and Node
+_UI_ACTION_ADD_SCHEMA_NODE         = Add &Schema Node
+! NOTE TO TRANSLATOR: TRANSLATE Add and Local
+_UI_ACTION_ADD_LOCAL_SIMPLE_TYPE   = Add Local &Simple Type
+_UI_ACTION_ADD_LOCAL_COMPLEX_TYPE  = Add Local &Complex Type
+_UI_ACTION_BACK_TO_SCHEMA_VIEW     = Back To Schema
+_UI_HOVER_BACK_TO_SCHEMA_VIEW     = Back to schema
+
+_UI_ACTION_MAKE_ANONYMOUS_TYPE_GLOBAL = Make Anonymous Type Global
+_UI_ACTION_OPEN_SCHEMA                = Open Schema
+
+_UI_ACTION_INSERT_BEFORE           = Insert Before
+_UI_ACTION_INSERT_AFTER            = Insert After
+
+_UI_OUTLINE_SORT                   = Sort alphabetically
+_UI_OUTLINE_DO_NOT_SORT            = Do not sort alphabetically
+
+_UI_OUTLINE_SHOW_COMPLEX_TYPE      = Show Complex Types Only
+_UI_OUTLINE_SHOW_SIMPLE_TYPE       = Show Simple Types Only
+_UI_OUTLINE_SHOW_ATTRIBUTE_GROUP   = Show Attribute Groups Only
+_UI_OUTLINE_SHOW_GROUP             = Show Groups Only
+_UI_OUTLINE_SHOW_GLOBAL_ELEMENT    = Show Global Elements Only
+_UI_OUTLINE_SHOW_REFERENCES        = Show Reference Content
+_UI_OUTLINE_SHOW_INHERITED         = Show Inherited Content
+
+_UI_ACTION_SET_MULTIPLICITY		   = Set Multiplicity
+
+!
+! New XML Schema Wizard
+!
+_UI_WIZARD_CREATE_XSD_MODEL_TITLE    = Create XML Schema
+
+! NOTE TO TRANSLATOR: Do not translate following line
+_UI_CREATEXSD                        = createXSD
+_UI_NEW_XML_SCHEMA_TITLE             = New XML Schema
+_UI_CREATE_A_NEW_XML_SCHEMA_DESC     = Create a new XML schema.
+
+! NOTE TO TRANSLATOR: Do not translate following line
+_UI_NEW_XML_SCHEMA_FILENAME          = NewXMLSchema.xsd
+
+!
+! XSD From RDB Schema Wizard
+!
+_UI_WIZARD_CREATE_XSD_FROM_RDB_TITLE = Create XSD from RDB Table
+
+
+!
+! Regular Expression Wizard
+!
+_UI_REGEX_WIZARD_CREATE_BUTTON = Create Regular Expression...
+_UI_TOOLTIP_REGEX_WIZARD_BUTTON = Launch the Regular Expression Wizard
+_UI_REGEX_WIZARD_TITLE = Regular Expression Wizard
+_UI_REGEX_WIZARD_COMPOSITION_PAGE_TITLE = Compose Regular Expression
+_UI_REGEX_WIZARD_COMPOSITION_PAGE_DESCRIPTION = To add a token, specify its contents and occurrence, then click Add.
+_UI_REGEX_WIZARD_INVALID_REGEX_ERROR_PREFIX = The current regular expression is not valid.  Reason:  
+_UI_REGEX_WIZARD_INVALID_TOKEN_ERROR_PREFIX = The current token is not valid.  Reason:  
+_UI_REGEX_WIZARD_INVALID_REGEX_ERROR = The current regular expression is not valid.
+_UI_REGEX_WIZARD_INVALID_TOKEN_ERROR = The current token is not valid.
+_UI_REGEX_WIZARD_INVALID_MIN_ERROR_SUFFIX = Invalid minimum range value.  The value must be a positive integer less than the maximum value.
+_UI_REGEX_WIZARD_MISSING_MIN_ERROR_SUFFIX = Invalid minimum range value.  A minimum range must be specified if a maximum range is specified.
+_UI_REGEX_WIZARD_INVALID_MAX_ERROR_SUFFIX = Invalid maximum range value.  The value must be a positive integer greater than the minimum value.
+_UI_REGEX_WIZARD_INVALID_REPEAT_ERROR_SUFFIX = Invalid repeat value.  The value must be a positive integer.
+_UI_REGEX_WIZARD_INVALID_SELECTION_ERROR = Nothing is currently selected.  Either make a selection or choose a different token. 
+_UI_REGEX_WIZARD_TOKEN_LABEL = Token contents:
+_UI_REGEX_WIZARD_AUTO_ESCAPE_CHECKBOX_LABEL = Auto escape
+_UI_REGEX_WIZARD_OCCURENCE_LABEL = Occurrence
+! Instructions for translators: The following label is used in a phrase to identify a range of values.
+! For example:  5 to 10.
+! The values are text fields that are initially blank so the user has to enter in values
+! For example:   _______ to ________
+_UI_REGEX_WIZARD_TO_LABEL = to
+_UI_REGEX_WIZARD_ADD_BUTTON_LABEL = Add 
+_UI_REGEX_WIZARD_CURRENT_REGEX_LABEL = Current regular expression:
+_UI_TOOLTIP_REGEX_WIZARD_TERMS = Content of new token
+_UI_TOOLTIP_REGEX_WIZARD_AUTO_ESCAPE_CHECKBOX = Insert escape characters to match metacharacter literals (e.g. converts \"*\" to \"\\*\")
+_UI_TOOLTIP_REGEX_WIZARD_ADD_BUTTON = Add this token to the regular expression
+_UI_TOOLTIP_REGEX_WIZARD_CURRENT_REGEX = The current regular expression
+_UI_TOOLTIP_REGEX_WIZARD_REPEAT = The number of times that the token must occur.
+_UI_TOOLTIP_REGEX_WIZARD_MIN = The minimum number of times that the token can occur.
+_UI_TOOLTIP_REGEX_WIZARD_MAX = The maximum number of times that the token can occur.
+_UI_TOOLTIP_REGEX_WIZARD_CARET_LABEL = The location where the new token will be inserted.
+_UI_REGEX_WIZARD_TESTING_PAGE_TITLE = Test Regular Expression
+_UI_REGEX_WIZARD_TESTING_PAGE_DESCRIPTION = To test the regular expression, enter sample text that you wish to match.  The success of the match will be indicated above.
+_UI_REGEX_WIZARD_REGEX_LABEL = Regular expression: 
+_UI_REGEX_WIZARD_SAMPLE_TEXT =  Sample text: 
+_UI_REGEX_WIZARD_MATCHES = The text matches the regular expression.
+_UI_REGEX_WIZARD_DOES_NOT_MATCH = The text does not match the regular expression.
+_UI_REGEX_WIZARD_TERM_ANY_CHAR = Any character
+_UI_REGEX_WIZARD_TERM_ALPHANUMERIC_CHAR = Alphanumeric character
+_UI_REGEX_WIZARD_TERM_WHITESPACE = Whitespace
+_UI_REGEX_WIZARD_TERM_DIGIT = Digit
+_UI_REGEX_WIZARD_TERM_UPPER = Upper case
+_UI_REGEX_WIZARD_TERM_LOWER = Lower case
+_UI_REGEX_WIZARD_TERM_SELECTION = Current selection
+_UI_REGEX_WIZARD_QUANTIFIER_SINGLE = Just once
+_UI_REGEX_WIZARD_QUANTIFIER_STAR = Zero or more
+_UI_REGEX_WIZARD_QUANTIFIER_PLUS = One or more
+_UI_REGEX_WIZARD_QUANTIFIER_OPTIONAL = Optional
+_UI_REGEX_WIZARD_QUANTIFIER_REPEAT = Repeat
+_UI_REGEX_WIZARD_QUANTIFIER_RANGE = Range
+
+!
+! Select Include File Wizard
+_UI_LABEL_INCLUDE_URL_FILE    = Select schema from:
+_UI_RADIO_URL                 = HTTP
+_UI_RADIO_FILE                = Workbench projects
+_UI_WIZARD_INCLUDE_FILE_TITLE = Include Another Schema
+_UI_WIZARD_INCLUDE_FILE_DESC  = Select another schema from workbench projects or from HTTP.
+_UI_LABEL_URL                 = URL:
+_UI_URL_START_WITH            = The URL must start with http://
+_UI_SPECIFY_URL               = Please specify a URL
+
+!
+! Enumerations Dialog
+_UI_ENUMERATIONS_DIALOG_TITLE = Add Enumerations
+_UI_LABEL_DELIMITER_CHAR      = &Delimiter characters:
+_UI_LABEL_PRESERVE_WHITESPACE = &Preserve leading and trailing whitespace
+
+_UI_ACTION_DELETE_ENUMERATION = Delete Enumeration
+
+!
+! 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.
+
+!
+! Combo-box choices 
+!
+! NOTE TO TRANSLATOR: Do not translate following 10 lines
+_UI_COMBO_QUALIFIED             = qualified
+_UI_COMBO_UNQUALIFIED           = unqualified
+_UI_COMBO_EXTENSION             = extension
+_UI_COMBO_RESTRICTION           = restriction
+_UI_COMBO_ALL                   = all
+_UI_COMBO_TRUE                  = true
+_UI_COMBO_FALSE                 = false
+_UI_COMBO_LAX                   = lax
+_UI_COMBO_SKIP                  = skip
+_UI_COMBO_STRICT                = strict
+
+! Generate DTD - pass as title and description for wizard page
+_UI_GENERATE_DTD_TITLE          = Generate DTD
+_UI_GENERATE_DTD_DESCRIPTION    = Generate a DTD from the selected XML schema file.
+
+! Generate DDL - pass as title and description for wizard page
+_UI_GENERATE_DDL_TITLE          = Generate DDL
+_UI_GENERATE_DDL_DESCRIPTION    = Generate DDL from the selected XML schema file.
+
+_UI_XML_SCHEMA_VALIDATOR            = XML Schema Validator
+
+! Generation from the Schema model - pre-condition check
+_UI_DIALOG_TITLE_GRAMMAR_ERROR      = Invalid Grammar
+_UI_DIALOG_INFO_SCHEMA_INVALID      = The schema file contains errors. Open it in the XML Schema editor and validate it for details.
+_UI_DIALOG_TITLE_NO_GLOBAL_ELEMENTS = No Global Elements
+_UI_DIALOG_INFO_NO_GLOBAL_ELEMENTS  = The selected schema has no global elements. Global elements are required to generate anything from an XML schema.
+
+! Section title for other attributes
+_UI_SECTION_ADVANCED_ATTRIBUTES   = Advanced
+
+! For undo action menus
+! Note to Translators: For the following "Change" phrases,
+! maxOccurs, minOccurs, lang, xpath are keywords so please
+! do no translate them.  These are for the undo action menus.
+! For example, if the user makes a change in the name of an
+! element, then the undo action would be Undo Element Name Change
+_UI_NAMESPACE_CHANGE           = Namespace Change
+_UI_PROCESSCONTENTS_CHANGE     = Process Contents Change
+_UI_MAXOCCURS_CHANGE           = maxOccurs Change
+_UI_MINOCCURS_CHANGE           = minOccurs Change
+_UI_SOURCE_ATTRIBUTE_CHANGE    = Source Change
+_UI_COMMENT_CHANGE             = Comment Change
+_UI_PREFIX_CHANGE              = Prefix Change
+_UI_ATTRIBUTEGROUP_REF_CHANGE  = Attribute Group Reference Change
+_UI_ATTRIBUTEGROUP_NAME_CHANGE = Attribute Group Name Change
+_UI_ATTRIBUTE_FIXED_CHANGE     = Attribute Fixed Change
+_UI_ATTRIBUTE_DEFAULT_CHANGE   = Attribute Default Change
+_UI_ATTRIBUTE_NAME_CHANGE      = Attribute Name Change
+_UI_ATTRIBUTE_VALUE_CHANGE     = Attribute Value Change
+_UI_ATTRIBUTE_USE_CHANGE       = Attribute Use Change
+_UI_ATTRIBUTE_FORM_CHANGE      = Attribute Form Change
+_UI_COMPLEXTYPE_NAME_CHANGE    = Complex Type Name Change
+_UI_COMPLEXTYPE_ABSTRACT_CHANGE = Complex Type Abstract Change
+_UI_COMPLEXTYPE_MIXED_CHANGE   = Complex Type Mixed Change
+_UI_COMPLEXTYPE_BLOCK_CHANGE   = Complex Type Block Change
+_UI_COMPLEXTYPE_FINAL_CHANGE   = Complex Type Final Change
+_UI_DOCUMENTATION_SOURCE_CHANGE = Documentation Source Change
+_UI_DOCUMENTATION_LANG_CHANGE   = Documentation lang Change
+_UI_DOCUMENTATION_COMMENT_CHANGE = Documentation Comment Change
+_UI_ELEMENT_NAME_CHANGE          = Element Name Change
+_UI_ELEMENT_VALUE_CHANGE         = Element Value Change
+_UI_ELEMENT_TYPE_CHANGE          = Element Type Change
+_UI_ENUM_VALUE_CHANGE            = Enum Value Change
+_UI_FIELD_XPATH_CHANGE           = Field xpath Change
+_UI_GROUP_REF_CHANGE             = Group Reference Change
+_UI_GROUP_SCOPE_CHANGE           = Content Model Change
+_UI_GROUP_NAME_CHANGE            = Group Name Change
+_UI_IMPORT_CHANGE                = Import Change
+_UI_KEY_NAME_CHANGE              = Key Name Change
+_UI_KEYREF_NAME_CHANGE           = Key Reference Name Change
+! Note to translators
+! For the following item, Refer is the keyref attribute to refer to some other key
+_UI_KEYREF_REFER_CHANGE          = Key Reference Refer Change
+_UI_NOTATION_NAME_CHANGE         = Notation Name Change
+_UI_NOTATION_PUBLIC_CHANGE       = Notation Public Change
+_UI_NOTATION_SYSTEM_CHANGE       = Notation System Change
+_UI_PATTERN_VALUE_CHANGE         = Pattern Value Change
+_UI_SCHEMA_VERSION_CHANGE        = Schema Version Change
+_UI_SCHEMA_LANG_CHANGE           = Schema lang Change
+_UI_SELECTOR_XPATH_CHANGE        = Selector xpath Change
+_UI_TYPE_CHANGE                  = Type Change
+_UI_DERIVEDBY_CHANGE             = Derivation Change
+_UI_FACET_CHANGE                 = Facet Change
+_UI_SIMPLETYPE_NAME_CHANGE       = SimpleType Name Change
+_UI_UNIQUE_NAME_CHANGE           = Unique Name Change
+_UI_SCHEMA_ATTRIBUTEFORMDEFAULT_CHANGE = Attribute Form Default Change
+_UI_SCHEMA_ELEMENTFORMDEFAULT_CHANGE = Element Form Default Change
+_UI_SCHEMA_BLOCKDEFAULT_CHANGE   = Block Default Change
+_UI_SCHEMA_FINALDEFAULT_CHANGE   = Final Default Change
+_UI_ELEMENT_SUBSTITUTIONGROUP_CHANGE = Substitution Group Change
+_UI_ELEMENT_FORM_CHANGE          = Form Change
+_UI_ELEMENT_BLOCK_CHANGE         = Block Change
+_UI_ELEMENT_FINAL_CHANGE         = Final Change
+_UI_ELEMENT_ABSTRACT_CHANGE      = Abstract Change
+_UI_ELEMENT_NILLABLE_CHANGE      = Nillable Change
+_UI_TARGETNAMESPACE_CHANGE       = Target Namespace Change
+
+! Window Headings for Flat View
+_UI_PAGE_HEADING_ANYATTRIBUTE = Any Attribute
+_UI_PAGE_HEADING_ANYELEMENT   = Any Element
+_UI_PAGE_HEADING_APPINFO            = AppInfo
+_UI_PAGE_HEADING_ATTRIBUTEGROUP_REF = Attribute Group Reference
+_UI_PAGE_HEADING_ATTRIBUTEGROUP     = Attribute Group
+_UI_PAGE_HEADING_ATTRIBUTE_REF      = Attribute Reference
+_UI_PAGE_HEADING_ATTRIBUTE          = Attribute
+_UI_PAGE_HEADING_COMPLEXTYPE        = Complex Type
+_UI_PAGE_HEADING_DOCUMENTATION      = Documentation
+_UI_PAGE_HEADING_ELEMENT     = Element
+_UI_PAGE_HEADING_ELEMENT_REF = Element Reference
+_UI_PAGE_HEADING_ENUM        = Enumeration
+_UI_PAGE_HEADING_FIELD       = Field
+_UI_PAGE_HEADING_GROUP_REF   = Group Reference
+_UI_PAGE_HEADING_CONTENTMODEL  = Content Model
+_UI_PAGE_HEADING_GROUP         = Group
+_UI_PAGE_HEADING_IMPORT        = Import
+_UI_PAGE_HEADING_INCLUDE       = Include
+_UI_PAGE_HEADING_KEYREF        = Key Reference
+_UI_PAGE_HEADING_KEY           = Key
+_UI_PAGE_HEADING_NOTATION      = Notation
+_UI_PAGE_HEADING_PATTERN       = Pattern
+_UI_PAGE_HEADING_REDEFINE      = Redefine
+_UI_PAGE_HEADING_SCHEMA        = Schema
+_UI_PAGE_HEADING_SELECTOR      = Selector
+_UI_PAGE_HEADING_LIST          = List
+_UI_PAGE_HEADING_UNION         = Union
+_UI_PAGE_HEADING_SIMPLECONTENT = Simple Content
+_UI_PAGE_HEADING_COMPLEXCONTENT = Complex Content
+_UI_PAGE_HEADING_RESTRICTION   = Restriction
+_UI_PAGE_HEADING_EXTENSION     = Extension
+_UI_PAGE_HEADING_SIMPLETYPE    = Simple Type
+_UI_PAGE_HEADING_UNIQUE        = Unique
+_UI_PAGE_HEADING_REFERENCE     = reference
+
+!
+! Graph page
+!
+_UI_GRAPH_SIMPLE_TYPES         = Simple Types
+_UI_GRAPH_COMPLEX_TYPES        = Complex Types
+_UI_GRAPH_GROUPS               = Groups
+_UI_GRAPH_GLOBAL_ATTRIBUTES    = Global Attributes
+_UI_GRAPH_GLOBAL_ELEMENTS      = Global Elements
+_UI_GRAPH_XSDSCHEMA            = Schema
+_UI_GRAPH_XSDSCHEMA_NO_NAMESPACE = (no target namespace specified)
+_UI_GRAPH_XSDCOMPLEXTYPEDEFINITION = XSD Complex Type Definition:
+_UI_GRAPH_XSDMODELGROUP        = XSD Model Group
+_UI_GRAPH_XSDPARTICLE          = XSD Particle
+_UI_GRAPH_VIEW_NOT_AVAILABLE   = View is not available for selected object.
+_UI_GRAPH_UNKNOWN_OBJECT       = Unknown object
+
+! Additional Categories
+_UI_GRAPH_TYPES                = Types
+_UI_GRAPH_ELEMENTS             = Elements
+_UI_GRAPH_ATTRIBUTES           = Attributes
+_UI_GRAPH_ATTRIBUTE_GROUPS     = Attribute Groups
+_UI_GRAPH_NOTATIONS            = Notations
+_UI_GRAPH_IDENTITY_CONSTRAINTS = Identity Constraints
+_UI_GRAPH_ANNOTATIONS          = Annotations
+_UI_GRAPH_DIRECTIVES           = Directives
+
+! For Union MemberTypes Dialog
+_UI_LABEL_SELECT_MEMBERTYPES   = Select from the available types and add to the memberTypes list
+_UI_LABEL_MEMBERTYPES_CHANGE   = Member Types Change
+_UI_LABEL_MEMBERTYPES_VALUE    = Member Types Value:
+_UI_LABEL_MEMBERTYPES          = Member types:
+
+_UI_LABEL_VARIETY_CHANGE       = Variety Change
+
+_UI_LABEL_FIXEDORDEFAULT_VALUE = Fixed/Default Value
+
+_UI_LABEL_ITEM_TYPE_CHANGE     = Item Type Change
+
+_UI_LABEL_AVAILABLE_TYPES      = Available Types
+
+_UI_LABEL_INCLUDE_CHANGE       = Include Change
+
+_UI_LABEL_ITEM_TYPE            = Item type:
+_UI_LABEL_BASE_TYPE            = Base Type
+_UI_LABEL_TYPE                 = Type
+_UI_LABEL_MODEL_GROUP          = Model Group
+
+_UI_LABEL_ABSENT               = absent
+
+_UI_WARNING_RESET_ATTRGRP_REF  = Reset attribute group reference <{0}>
+_UI_WARNING_REMOVE_ATTRGRP_REF = Remove attribute group reference <{0}>
+_UI_WARNING_RESET_ATTR_REF     = Reset attribute reference <{0}>
+_UI_WARNING_REMOVE_ATTR_REF    = Remove attribute reference <{0}>
+
+!======================================================================================
+!
+! Here is the list of Error string that have message IDs - make sure they are unique
+!  Range for XSDEditor messageIDs: IWAX1001E - IWAX1200E
+!
+!======================================================================================
+! These three errors appear in the select include wizard
+! The name of the file will be substituted in
+_UI_DIFFERENT_NAME_SPACE  = {0} is in a different namespace 
+_UI_SAME_NAME_SPACE       = {0} is in the same namespace
+_UI_INCORRECT_XML_SCHEMA  = {0} is an invalid XML schema file
+
+_ERROR_SCHEMA_NOT_EXIST         = IWAX1003E does not exist.
+_ERROR_LABEL_INVALID_PREFIX     = IWAX1004E Invalid prefix. A prefix must not be empty or contain any space.
+
+! The name of the file will be substituted in
+_ERROR_SCHEMA_NAME_THE_SAME  = IWAX1005E {0} is the current schema. A schema cannot include itself. Reset to the last valid schema.
+
+_ERROR_XSD_GENERATION                = IWAX1006E Error generating XML schema
+_ERROR_NO_CONTAINER                  = IWAX1007E No folder selected
+_ERROR_NO_FILE_NAME                  = IWAX1008E No file name provided
+_ERROR_FILENAME_MUST_END_XSD         = IWAX1011E The file name must end in .xsd
+
+
+!
+! For schema that has too many errors, an extended message. 
+!
+_ERROR_DIALOG_XML_SCHEMA_INVALID_TEXT  = IWAX100d9E The XML schema file is not valid.  
+_ERROR_MORE_ERRORS                    = There are more errors in the schema than are displayed in the Tasks view.  Correct the first {0} errors and re-validate the schema file.
+
+! DDL Generation Failed Dialog
+_UI_DIALOG_DDL_GEN_FAILED_TITLE     = DDL Generation Failed
+_ERROR_DIALOG_DDL_NOT_GENEREATED    = IWAX1010E DDL has not been generated
+_UI_DIALOG_DDL_GEN_FAILED_REASON    = The selected schema has no global elements
+_UI_DIALOG_DDL_GEN_FAILED_REASON2   = None of the global elements in the schema have a complex type or they reference complex types that cannot be found.
+
+_EXC_OPEN_XSD = IWAX1011E Cannot open XML Schema editor
+
+_ERROR_LABEL_PREFIX_EXISTS     = IWAX1012E Prefix already exists
+
+_ERROR_REMOVE_LOCAL_SIMPLETYPE  = IWAX1013E Remove local simple type from extension
+
+_WARN_INVALID_TARGET_NAMESPACE = IWAX1014E The target namespace is not well-formed
+
+_ERROR_TARGET_NAMESPACE_AND_PREFIX = IWAX1015E A target namespace must be associated with a prefix
+
+
+_UI_CONTAINMENT = Containment
+_UI_INHERITANCE = Inheritance
+_UI_SUBSTITUTION_GROUPS = Substitution Groups
+_UI_ANONYMOUS = **anonymous**
+_UI_VALUE = Value
+_UI_ANY_ELEMENT = Any Element
+_UI_SORT = Sort
+
+_UI_ACTION_EDIT_NAMESPACES = Edit Namespaces...
+
+
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
+!======================================================================================
+!
+! Used by org.eclipse.wst.common.ui.internal.viewers.SelectSingleFileView
+!
+!======================================================================================
+_UI_LABEL_SOURCE_FILES   = Workbench Files
+_UI_LABEL_SELECTED_FILES = Selected Files
+
+_UI_IMPORT_BUTTON          = Import Files...
+_UI_IMPORT_BUTTON_TOOL_TIP = Import files from file system
+
+
+!======================================================================================
+!
+! refactoring
+!
+!======================================================================================
+refactoringActionSet.label=Refactor
+refactoringActionSet.description=XSD Editor refactoring actions
+refactoring.menu.label=Refactor
+refactoring.renameAction.label=Re&name...
+context.text.editor.xsd.name=Editing XSD context
+command.xsd.refactor.rename.element.name=Rename XSD element
+command.xsd.refactor.rename.element.description=Rename XSD element
+command.xsd.refactor.makeElementGlobal.element.name=Make local element global
+command.xsd.refactor.makeElementGlobal.element.description=Promotes local element to global level and replaces its references
+command.xsd.refactor.makeTypeGlobal.element.name=Make anonymous type global
+command.xsd.refactor.makeTypeGlobal.element.description=Promotes anonymous type to global level and replaces its references
+
+! Copied from sse
+23concat_EXC_=Resource {0} does not exist.
+32concat_EXC_=Editor could not be open on {0}
+An_error_has_occurred_when1_ERROR_=An error has occurred when initializing the input for the the editor's source page.
+OpenFileFromSource.label=Op&en Selection
+OpenFileFromSource.tooltip=Open an editor on the selected link
+OpenFileFromSource.image=
+OpenFileFromSource.description=Open an editor on the selected link
+
+AddBookmark.label=Add Boo&kmark...
+SelectRuler.label=Select Ruler
+
+_ZERO_OR_MORE = Zero or More
+_ZERO_OR_ONE  = Zero or One
+_ONE_OR_MORE  = One or More
+
+# For translators, as in structured DOM tree
+_UI_LABEL_STRUCTURED           = Structured
+
+_UI_LABEL_MOVE   				       = Move
+_UI_LABEL_RENAME 				       = Rename
+_UI_LABEL_TARGETNAMESPACE_CHANGE       = Target Namespace Change
+_INFO_RESET_ATTRIBUTE_GROUP_REFERENCE  = Reset attribute group reference
+_INFO_REMOVE_ATTRIBUTE_GROUP_REFERENCE = Remove attribute group reference
+
+Bundle-Vendor.0 = Eclipse.org
+search.declarations.label = Declarations
+search.references.label = References
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/plugin.xml b/bundles/org.eclipse.wst.xsd.ui/plugin.xml
new file mode 100644
index 0000000..90c3e76
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/plugin.xml
@@ -0,0 +1,451 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+
+	<extension point="org.eclipse.ui.editors">
+		<editor
+			name="%_UI_EDITOR_NAME"
+			extensions="xsd"
+			default="true"
+			icon="icons/XSDFile.gif"
+            contributorClass="org.eclipse.wst.xsd.editor.XSDMultiPageEditorContributor"
+            class="org.eclipse.wst.xsd.editor.InternalXSDMultiPageEditor"
+            id="org.eclipse.wst.xsd.editor.InternalXSDMultiPageEditor">
+<!--            <contentTypeBinding
+                contentTypeId="org.eclipse.wst.xsd.core.xsdsource" />
+                -->
+		</editor>
+	</extension>
+
+	<extension point="org.eclipse.ui.editorActions">
+        <editorContribution
+            targetID="org.eclipse.wst.xsd.core.xsdsource.source"
+            id="org.eclipse.wst.xsd.core.xsdsource.ruler.actions">
+         <action
+               label="%AddBookmark.label"
+               helpContextId="org.eclipse.ui.bookmark_action_context"
+               class="org.eclipse.ui.texteditor.BookmarkRulerAction"
+               actionID="RulerDoubleClick"
+               id="org.eclipse.ui.texteditor.BookmarkRulerAction"/>
+         <action
+               label="%SelectRuler.label"
+               class="org.eclipse.ui.texteditor.SelectRulerAction"
+               actionID="RulerClick"
+               id="org.eclipse.ui.texteditor.SelectRulerAction"/>
+        </editorContribution>
+	</extension>
+
+	<extension point="org.eclipse.ui.newWizards">
+		<wizard
+			id="org.eclipse.wst.xsd.ui.internal.wizards.NewXSDWizard"
+			name="%_UI_WIZARD_NEW_XSD"
+			class="org.eclipse.wst.xsd.ui.internal.wizards.NewXSDWizard"
+			category="org.eclipse.wst.XMLCategory"
+			icon="icons/XSDFile.gif">
+			<description>%_UI_CREATE_A_NEW_SCHEMA</description>
+			<selection class="org.eclipse.core.resources.IResource" />
+		</wizard>
+	</extension>
+
+	<extension point="org.eclipse.ui.preferencePages">
+		<page
+			name="%_UI_XML_SCHEMA_PREFERENCE"
+			category="org.eclipse.wst.sse.ui.internal.provisional.preferences"
+			class="org.eclipse.wst.xsd.editor.internal.preferences.XSDPreferencePage"
+			id="org.eclipse.wst.xsd.editor.internal.preferences.XSDPreferencePage">
+		</page>
+	</extension>
+<!--
+	<extension point="org.eclipse.wst.sse.ui.editorConfiguration">
+		<provisionalDefinition
+			type="preferencepages"
+			value="org.eclipse.wst.xsd.ui.internal.preferences.XSDPreferencePage"
+			target="org.eclipse.wst.xsd.ui.internal.XSDEditor.source" />
+     		<sourceViewerConfiguration
+			class="org.eclipse.wst.xsd.ui.internal.StructuredTextViewerConfigurationXSD"
+			target="org.eclipse.wst.xsd.core.xsdsource" />
+		<contentOutlineConfiguration
+			class="org.eclipse.wst.xsd.ui.internal.XSDContentOutlineConfiguration"
+			target="org.eclipse.wst.xsd.core.xsdsource" /> 
+	</extension>  -->
+
+	<!-- ==================================================== -->
+	<!-- Support help on the tags                             -->
+	<!-- ==================================================== -->
+	<!--   <extension
+		point="org.eclipse.wst.xml.core.internal.contentmodel.annotationFiles">
+		<annotationFile
+		location="/w3c/schemaForCodeAssist-annotations.xml"
+		publicId="http://www.w3.org/2001/XMLSchema">
+		</annotationFile>
+		</extension>
+	-->
+	
+	
+   <extension 
+   		point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
+     <propertyContributor
+           contributorId="org.eclipse.wst.xsd.editor"
+           labelProvider="org.eclipse.wst.xsd.ui.common.properties.providers.XSDSectionLabelProvider">
+         <propertyCategory category="General"/>
+   		 <propertyCategory category="Documentation"/>
+         <propertyCategory category="Advanced"/>
+     </propertyContributor>
+   </extension>
+
+   <extension 
+    	point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
+      <propertyTabs 
+            contributorId="org.eclipse.wst.xsd.editor">
+			<propertyTab
+				label="%_UI_LABEL_GENERAL"
+				category="General"
+				id="property.tab.general">
+			</propertyTab>
+			<propertyTab
+				label="%_UI_LABEL_TYPE_CONSTRAINTS"
+				category="General"
+				afterTab="property.tab.general"
+				id="property.tab.typeconstraints">
+			</propertyTab>
+			<propertyTab
+				label="%_UI_LABEL_ENUMERATIONS"
+				category="General"
+				afterTab="property.tab.general"
+				id="property.tab.enumerations">
+			</propertyTab>
+			<propertyTab
+				label="%_UI_LABEL_DOCUMENTATION"
+				category="Documentation"
+				afterTab="property.tab.general"
+				id="property.tab.documentation">
+			</propertyTab>
+			<propertyTab
+				label="%_UI_LABEL_EXTENSIONS"
+				category="Documentation"
+				afterTab="property.tab.general"
+				id="property.tab.extensions">
+			</propertyTab>
+    </propertyTabs>
+ </extension>
+
+
+<extension point="org.eclipse.ui.views.properties.tabbed.propertySections">
+   <propertySections contributorId="org.eclipse.wst.xsd.editor">
+	 <propertySection tab="property.tab.general" 
+        class="org.eclipse.wst.xsd.ui.common.properties.sections.XSDSchemaSection"  
+	 	id="prop.section.XSDSchemaSection">
+	    <input type="org.eclipse.xsd.XSDSchema">
+	    </input>
+	 </propertySection>
+	 <propertySection tab="property.tab.general" 
+        class="org.eclipse.wst.xsd.ui.common.properties.sections.SchemaLocationSection" 
+	 	id="prop.section.SchemaLocationSection">
+	    <input type="org.eclipse.xsd.XSDSchemaCompositor">
+	    </input>
+	 </propertySection>
+	 <propertySection tab="property.tab.general" 
+        class="org.eclipse.wst.xsd.ui.common.properties.sections.XSDComplexTypeSection"  
+	 	id="prop.section.XSDComplexTypeSection">
+	    <input type="org.eclipse.xsd.XSDComplexTypeDefinition">
+	    </input>
+	 </propertySection>
+	 <propertySection tab="property.tab.general" 
+        class="org.eclipse.wst.xsd.ui.common.properties.sections.XSDElementDeclarationSection"  
+	 	id="prop.section.XSDElementDeclarationSection">
+	    <input type="org.eclipse.xsd.XSDElementDeclaration">
+	    </input>
+	 </propertySection>
+	 <propertySection tab="property.tab.general" 
+        class="org.eclipse.wst.xsd.ui.common.properties.sections.XSDAttributeDeclarationSection"
+	 	id="prop.section.XSDAttributeDeclarationSection">
+	    <input type="org.eclipse.xsd.XSDAttributeDeclaration">
+	    </input>
+	 </propertySection>
+	 <propertySection tab="property.tab.general" 
+        class="org.eclipse.wst.xsd.ui.common.properties.sections.XSDAttributeGroupDefinitionSection"  
+	 	id="prop.section.XSDAttributeGroupDefinitionSection">
+	    <input type="org.eclipse.xsd.XSDAttributeGroupDefinition">
+	    </input>
+	 </propertySection>	
+	 <propertySection tab="property.tab.general" 
+        class="org.eclipse.wst.xsd.ui.common.properties.sections.XSDModelGroupSection"  
+	 	id="prop.section.XSDModelGroupSection">
+	    <input type="org.eclipse.xsd.XSDModelGroup">
+	    </input>
+	 </propertySection>
+	 <propertySection tab="property.tab.general" 
+        class="org.eclipse.wst.xsd.ui.common.properties.sections.XSDModelGroupDefinitionSection"  
+	 	id="prop.section.XSDModelGroupDefinitionSection">
+	    <input type="org.eclipse.xsd.XSDModelGroupDefinition">
+	    </input>
+	 </propertySection>
+	 <propertySection tab="property.tab.general" 
+        class="org.eclipse.wst.xsd.ui.common.properties.sections.XSDSimpleTypeSection"
+	 	id="prop.section.XSDSimpleTypeSection">
+	    <input type="org.eclipse.xsd.XSDSimpleTypeDefinition">
+	    </input>
+	 </propertySection>
+	 <propertySection tab="property.tab.typeconstraints" 
+        class="org.eclipse.wst.xsd.ui.common.properties.sections.XSDFacetSection"
+        filter="org.eclipse.wst.xsd.ui.common.properties.sections.XSDFacetSectionFilter"
+	 	id="prop.section.XSDFacetSection">
+	    <input type="org.eclipse.xsd.XSDConcreteComponent">
+	    </input>
+	 </propertySection>
+	 <propertySection tab="property.tab.documentation" 
+	 	class="org.eclipse.wst.xsd.ui.common.properties.sections.AnnotationSection" 
+	 	id="prop.section.AnnotationSection">
+	    <input type="org.eclipse.xsd.XSDConcreteComponent">
+	    </input>
+	 </propertySection>
+	 <propertySection tab="property.tab.extensions" 
+	 	class="org.eclipse.wst.xsd.ui.common.properties.sections.ApplicationInfoSection" 
+	 	id="prop.section.ExtensionsSection">
+	    <input type="org.eclipse.xsd.XSDConcreteComponent">
+	    </input>
+	 </propertySection>
+  </propertySections>
+</extension>
+
+  <extension-point id="ApplicationInformationDescription" name="ApplicationInformationDescription"/>
+
+  <extension-point id="XSDEditorExtensionConfiguration" name="XSDEditorExtensionConfiguration"/>
+
+	<extension
+		point="org.eclipse.wst.xml.core.catalogContributions">
+		<catalogContribution id="default">
+		
+			<uri
+				name="http://www.w3.org/2001/XMLSchema"
+				uri="platform:/plugin/org.eclipse.xsd/cache/www.w3.org/2001/XMLSchema.xsd" />
+			<system
+				systemId="http://www.w3.org/2001/xml.xsd"
+				uri="platform:/plugin/org.eclipse.xsd/cache/www.w3.org/2001/xml.xsd"/>				
+		</catalogContribution>
+	</extension>
+
+
+	<!-- intialize xsd reconcile validator -->
+	<extension point="org.eclipse.wst.sse.ui.sourcevalidation">
+		<validator
+			scope="total"
+			class="org.eclipse.wst.xsd.ui.internal.validation.DelegatingSourceValidatorForXSD"
+			id="org.eclipse.wst.xsd.ui.internal.validation.DelegatingSourceValidatorForXSD">
+			<contentTypeIdentifier
+				id="org.eclipse.wst.xsd.core.xsdsource">
+				<partitionType id="org.eclipse.wst.xml.XML_DEFAULT">
+				</partitionType>
+			</contentTypeIdentifier>
+		</validator>
+	</extension>
+
+	<extension point="org.eclipse.ui.contexts">
+		<context
+			id="org.eclipse.wst.xsd.ui.text.editor.context"
+			name="%context.text.editor.xsd.name"
+			parentId="org.eclipse.ui.textEditorScope" />
+	</extension>
+
+	<!-- this extension point is used to augment the ModelQuery to provide schema specific guided editing -->
+	<extension point="org.eclipse.wst.xml.core.modelQueryExtensions">
+		<modelQueryExtension
+			class="org.eclipse.wst.xsd.ui.internal.text.XSDModelQueryExtension"
+			contentType="org.eclipse.wst.xsd.core.xsdsource">
+		</modelQueryExtension>
+	</extension>
+
+	<!-- ====================================================== -->
+	<!-- Define Assign Validate action on .xsd file             -->
+	<!-- ====================================================== -->
+	<extension point="org.eclipse.ui.popupMenus">
+		<objectContribution
+			objectClass="org.eclipse.core.resources.IFile"
+			nameFilter="*.xsd"
+			id="org.eclipse.wst.xsd.validation.xsdvalidationaction">
+			<action
+				label="%_UI_MENU_VALIDATE_XML"
+				class="org.eclipse.wst.xsd.ui.internal.validation.ValidateSchemaActionDelegate"
+				enablesFor="1"
+				id="org.eclipse.wst.xsd.ui.internal.validation.ValidateSchemaActionDelegate">
+			</action>
+		</objectContribution>
+	</extension>
+
+	<!-- ====================================================== -->
+	<!-- Register the XSD validator with the validation 		-->
+	<!-- framework. 										    -->
+	<!-- ====================================================== -->
+	<extension
+		id="xsdValidator"
+		name="%_UI_XML_SCHEMA_VALIDATOR"
+		point="org.eclipse.wst.validation.validator">
+		<validator>
+			<filter
+				objectClass="org.eclipse.core.resources.IFile"
+				caseSensitive="false"
+				nameFilter="*.xsd">
+			</filter>
+			<helper
+				class="org.eclipse.wst.xml.core.internal.validation.core.Helper">
+			</helper>
+			<run
+				class="org.eclipse.wst.xsd.ui.internal.validation.Validator">
+			</run>
+		</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>
+		</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>
+	-->
+	<!-- ============================================================================================== -->
+	<!-- Register the  'Refactor', 'References' and 'Declarations' items to the design view	            -->
+	<!-- ============================================================================================== -->	    
+   <extension point="org.eclipse.ui.popupMenus"> 
+      <objectContribution 
+         id="org.eclipse.wst.xsd.ui.refactoring.menu.objectContrib" 
+         objectClass="org.eclipse.wst.xsd.editor.internal.adapters.XSDBaseAdapter">  
+         <action
+            id="org.eclipse.wst.xsd.ui.search.declarations.action" 
+            enablesFor="1"
+            style="pulldown"
+            menubarPath="search-slot"
+            label="%search.declarations.label"
+            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="%search.references.label"
+            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="%refactoringActionSet.label" 
+            class="org.eclipse.wst.xsd.ui.internal.refactor.actions.XSDRefactorGroupActionDelegate"> 
+         </action>   
+      </objectContribution>         
+      <!-- here we add the 'refactor' menu item to the source view -->
+      <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>
+
+	
+	<!-- 
+		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-->	
+
+	<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>
+</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
new file mode 100644
index 0000000..db67a13
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/Checks.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * 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;
+import org.eclipse.wst.xml.core.internal.provisional.NameValidator;
+
+public class Checks {
+	
+	public static RefactoringStatus checkName(String name) {
+		RefactoringStatus result= new RefactoringStatus();
+		if ("".equals(name)) //$NON-NLS-1$
+			return RefactoringStatus.createFatalErrorStatus("RefactoringMessages.Checks_Choose_name"); 
+		return result;
+	}
+	
+	public static boolean isAlreadyNamed(RefactoringComponent element, String name){
+		return name.equals(element.getName());
+	}
+	
+	public static RefactoringStatus checkComponentName(String name) {
+		RefactoringStatus result= new RefactoringStatus();
+		if (!NameValidator.isValid(name)) //$NON-NLS-1$
+			return RefactoringStatus.createFatalErrorStatus("RefactoringMessages.Checks_Choose_name"); 
+
+		return result;
+	}
+
+}
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
new file mode 100644
index 0000000..af89666
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/INameUpdating.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * 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;
+
+/**
+ * @author ebelisar
+ */
+public interface INameUpdating {
+
+	public abstract void setNewElementName(String newName);
+	public abstract String getNewElementName();
+	public abstract String getCurrentElementName();
+    public abstract RefactoringStatus checkNewElementName(String newName);
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..1ff48fe
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/IReferenceUpdating.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * 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 {
+
+	/**
+	 * Checks if this refactoring object is capable of updating references to the renamed element.
+	 */
+	public boolean canEnableUpdateReferences();
+
+	/**
+	 * If <code>canUpdateReferences</code> returns <code>true</code>, then this method is used to
+	 * inform the refactoring object whether references should be updated.
+	 * This call can be ignored if  <code>canUpdateReferences</code> returns <code>false</code>.
+	 */	
+	public void setUpdateReferences(boolean update);
+
+	/**
+	 * If <code>canUpdateReferences</code> returns <code>true</code>, then this method is used to
+	 * ask the refactoring object whether references should be updated.
+	 * This call can be ignored if  <code>canUpdateReferences</code> returns <code>false</code>.
+	 */		
+	public boolean getUpdateReferences();
+
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..554bc8a
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/RefactoringComponent.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * 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;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+
+
+public interface RefactoringComponent
+{
+	/**
+	 * @return the name of the component that is refactored.  E.g. "foo"
+	 */
+	public String getName();
+	
+	/**
+	 * @return the namespace of the component that is refactored.  E.g. "http://foo"
+	 */
+	public String getNamespaceURI();
+	
+	/**
+	 * The basic DOM element is used by the refactoring processor/participant to get 
+	 * access to the file location.
+	 * 
+	 * @return the Structured Source Editor XML DOM element object that underlines the 
+	 * combonent being refactore.
+	 * 
+	 * @see IDOMElement 
+	 */
+	public IDOMElement getElement();
+	
+	/** 
+	 * @return the qualified name of the type of the refactored component. 
+	 * 
+	 * <p>
+	 * A qualified name consists of a local name and a namespace.  
+	 * E.g. "complexType"-local name, "http://www.w3.org/2001/XMLSchema"-namespace
+	 * </p>
+	 * 
+	 * @see QualifiedName
+	 */
+	public QualifiedName getTypeQName();
+		
+	/** 
+	 * The model object may be required to be given to the refactored participants as is or 
+	 * other objects could be derived from it.
+	 * 
+	 * @return the principal object being refactored, such as an instance of WSDLElement or 
+	 * XSDNamedComponent
+	 */
+	public Object getModelObject();
+
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/RefactoringMessages.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/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-refactor/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-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
new file mode 100644
index 0000000..5252362
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/TextChangeManager.java
@@ -0,0 +1,112 @@
+/*******************************************************************************
+ * 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;
+import java.util.Map;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.ltk.core.refactoring.TextChange;
+import org.eclipse.ltk.core.refactoring.TextFileChange;
+
+/**
+ * A <code>TextChangeManager</code> manages associations between <code>IFile</code> and <code>TextChange</code> objects.
+ */
+public class TextChangeManager {
+	
+	private Map fMap= new HashMap(10); // IFile -> TextChange
+	
+	private final boolean fKeepExecutedTextEdits;
+	
+	public TextChangeManager() {
+		this(false);
+	}
+
+	public TextChangeManager(boolean keepExecutedTextEdits) {
+		fKeepExecutedTextEdits= keepExecutedTextEdits;
+	}
+	
+	/**
+	 * Adds an association between the given file and the passed
+	 * change to this manager.
+	 * 
+	 * @param file the file (key)
+	 * @param change the change associated with the file
+	 */
+	public void manage(IFile file, TextChange change) {
+		fMap.put(file, change);
+	}
+	
+	/**
+	 * Returns the <code>TextChange</code> associated with the given file.
+	 * If the manager does not already manage an association it creates a one.
+	 * 
+	 * @param file the file for which the text buffer change is requested
+	 * @return the text change associated with the given file. 
+	 */
+	public TextChange get(IFile file) {
+		TextChange result= (TextChange)fMap.get(file);
+		if (result == null) {
+			result= new TextFileChange(file.toString(), file);
+			result.setKeepPreviewEdits(fKeepExecutedTextEdits);
+			fMap.put(file, result);
+		}
+		return result;
+	}
+	
+	/**
+	 * Removes the <tt>TextChange</tt> managed under the given key
+	 * <code>unit<code>.
+	 * 
+	 * @param unit the key determining the <tt>TextChange</tt> to be removed.
+	 * @return the removed <tt>TextChange</tt>.
+	 */
+	public TextChange remove(IFile unit) {
+		return (TextChange)fMap.remove(unit);
+	}
+	
+	/**
+	 * Returns all text changes managed by this instance.
+	 * 
+	 * @return all text changes managed by this instance
+	 */
+	public TextChange[] getAllChanges(){
+		return (TextChange[])fMap.values().toArray(new TextChange[fMap.values().size()]);
+	}
+
+	/**
+	 * Returns all files managed by this instance.
+	 * 
+	 * @return all files managed by this instance
+	 */	
+	public IFile[] getAllCompilationUnits(){
+		return (IFile[]) fMap.keySet().toArray(new IFile[fMap.keySet().size()]);
+	}
+	
+	/**
+	 * Clears all associations between resources and text changes.
+	 */
+	public void clear() {
+		fMap.clear();
+	}
+
+	/**
+	 * Returns if any text changes are managed for the specified file.
+	 * 
+	 * @param file the file
+	 * @return <code>true</code> if any text changes are managed for the specified file and <code>false</code> otherwise
+	 */		
+	public boolean containsChangesIn(IFile file){
+		return fMap.containsKey(file);
+	}
+}
+
+
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
new file mode 100644
index 0000000..ad779b1
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/XMLRefactoringComponent.java
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * 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;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+
+
+public class XMLRefactoringComponent implements RefactoringComponent
+{
+	// The name of the component being refactored
+	String name;
+	
+	// The namespace in which component is defined, e.g. XML or WSDL target namespace
+	String targetNamespace;
+	
+	// Optional model object that is refactored
+	Object model;
+	
+	// SED DOM object that underlines the component being refactored
+	IDOMElement domElement;
+
+	public XMLRefactoringComponent(Object modelObject, IDOMElement domElement, String name, String namespace)
+	{
+		super();
+		this.model = modelObject;
+		this.domElement = domElement;
+		this.name = name;
+		this.targetNamespace = namespace;
+		
+		
+	}
+	
+	public XMLRefactoringComponent(IDOMElement domElement, String name, String namespace)
+	{
+		super();
+		this.domElement = domElement;
+		this.name = name;
+		this.targetNamespace = namespace;
+	}
+
+	public Object getModelObject()
+	{
+		return model;
+	}
+
+	public IDOMElement getElement()
+	{
+		return domElement;
+	}
+
+	public String getName()
+	{
+		
+		return name;
+	}
+
+	public String getNamespaceURI()
+	{
+		return targetNamespace;
+	}
+
+	
+	public QualifiedName getTypeQName()
+	{
+		return new QualifiedName(domElement.getNamespaceURI(), domElement.getLocalName());
+	}
+	
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/MakeAnonymousTypeGlobalAction.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/MakeAnonymousTypeGlobalAction.java
new file mode 100644
index 0000000..dd5ffc4
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/MakeAnonymousTypeGlobalAction.java
@@ -0,0 +1,157 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.actions;
+
+import org.eclipse.jface.viewers.ISelection;
+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.editor.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.refactor.structure.MakeAnonymousTypeGlobalCommand;
+import org.eclipse.wst.xsd.ui.internal.refactor.structure.MakeTypeGlobalProcessor;
+import org.eclipse.wst.xsd.ui.internal.refactor.wizard.RefactoringWizardMessages;
+import org.eclipse.wst.xsd.ui.internal.refactor.wizard.RenameRefactoringWizard;
+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 XSDSelectionDispatchAction {
+
+	private String fParentName;
+	private boolean isComplexType = true;
+	private XSDTypeDefinition fSelectedComponent;
+	
+	public MakeAnonymousTypeGlobalAction(ISelection selection, XSDSchema schema) {
+		super(selection, schema);
+		setText(RefactoringWizardMessages.MakeAnonymousTypeGlobalAction_text); //$NON-NLS-1$
+	}
+	
+	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;
+			XSDConcreteComponent concreteComponent = getSchema().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,
+					RefactoringWizardMessages.RenameComponentWizard_defaultPageTitle, // TODO: provide correct strings
+					RefactoringWizardMessages.RenameComponentWizard_inputPage_description, null);
+			RefactoringWizardOpenOperation op= new RefactoringWizardOpenOperation(wizard);
+			op.run(XSDEditorPlugin.getShell(), wizard.getDefaultPageTitle());
+			//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,
+						RefactoringWizardMessages.MakeAnonymousTypeGlobalAction_text);
+		MakeAnonymousTypeGlobalCommand command = new MakeAnonymousTypeGlobalCommand(
+				fSelectedComponent, getNewDefaultName());
+		command.run();
+		doc.getModel().endRecording(this);
+	}
+	
+	
+
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/MakeLocalElementGlobalAction.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/MakeLocalElementGlobalAction.java
new file mode 100644
index 0000000..ea4de4e
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/MakeLocalElementGlobalAction.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.actions;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
+import org.eclipse.wst.xsd.ui.internal.refactor.structure.MakeLocalElementGlobalCommand;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDSchema;
+import org.w3c.dom.Node;
+
+public class MakeLocalElementGlobalAction extends XSDSelectionDispatchAction {
+
+	XSDElementDeclaration fSelectedComponent;
+
+	public MakeLocalElementGlobalAction(ISelection selection, XSDSchema schema) {
+		super(selection, schema);
+        //TODO cs : fix up translation
+        setText("Make Global");
+		//setText(RefactoringMessages.getString("MakeLocalElementGlobalAction.text")); //$NON-NLS-1$
+	}
+	
+	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;
+			XSDConcreteComponent concreteComponent = getSchema()
+					.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-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
new file mode 100644
index 0000000..0874e57
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameAction.java
@@ -0,0 +1,118 @@
+/*******************************************************************************
+ * 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.dialogs.MessageDialog;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.wst.xsd.editor.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.refactor.wizard.RefactoringWizardMessages;
+
+
+
+/**
+* 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 SelectionDispatchAction renameComponentAction;
+	private SelectionDispatchAction renameResourceAction;
+	
+	
+	public RenameAction(ISelection selection) {
+		super(selection);
+		setText(RefactoringWizardMessages.RenameAction_text); 
+		renameResourceAction= new RenameResourceAction(selection);
+		renameResourceAction.setText(getText());
+		
+	}
+	public RenameAction(ISelection selection, Object model) {
+		super(selection);
+		setText(RefactoringWizardMessages.RenameAction_text);
+		renameComponentAction= new RenameComponentAction(selection, model);
+		renameComponentAction.setText(getText());
+		renameResourceAction= new RenameResourceAction(selection);
+		renameResourceAction.setText(getText());
+		
+	}
+	
+
+	
+	/*
+	 * @see ISelectionChangedListener#selectionChanged(SelectionChangedEvent)
+	 */
+	public void selectionChanged(SelectionChangedEvent event) {
+		renameComponentAction.selectionChanged(event);
+		if (renameResourceAction != null)
+			renameResourceAction.selectionChanged(event);
+		setEnabled(computeEnabledState());		
+	}
+
+	/*
+	 * @see SelectionDispatchAction#update(ISelection)
+	 */
+	public void update(ISelection selection) {
+		if(renameComponentAction != null){
+			renameComponentAction.update(selection);
+		}
+		if (renameResourceAction != null)
+			renameResourceAction.update(selection);
+		setEnabled(computeEnabledState());		
+	}
+	
+	private boolean computeEnabledState(){
+		if (renameResourceAction != null) {
+			return renameComponentAction.isEnabled() || renameResourceAction.isEnabled();
+		} else {
+			return renameComponentAction.isEnabled();
+		}
+	}
+	
+	public void run(IStructuredSelection selection) {
+		if (renameComponentAction != null && renameComponentAction.isEnabled())
+			renameComponentAction.run(selection);
+		if (renameResourceAction != null && renameResourceAction.isEnabled())
+			renameResourceAction.run(selection);
+	}
+
+	public void run(ITextSelection selection) {
+		if (renameComponentAction != null && renameComponentAction.canRun())
+			renameComponentAction.run(selection);
+		else
+			MessageDialog.openInformation(XSDEditorPlugin.getShell(), RefactoringWizardMessages.RenameAction_rename, RefactoringWizardMessages.RenameAction_unavailable);  
+	}
+	public void run(ISelection selection) {
+	    if(selection == null){
+	    	super.run();
+	    }
+	    else{
+	    	super.run(selection);
+	    }
+		
+	}
+	public final void setRenameComponentAction(
+			SelectionDispatchAction renameComponentAction)
+	{
+		this.renameComponentAction = renameComponentAction;
+	}
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameComponentAction.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameComponentAction.java
new file mode 100644
index 0000000..e433463
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameComponentAction.java
@@ -0,0 +1,144 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-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.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.xml.core.internal.provisional.document.IDOMElement;
+import org.eclipse.wst.xsd.editor.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringComponent;
+import org.eclipse.wst.xsd.ui.internal.refactor.XMLRefactoringComponent;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.RenameComponentProcessor;
+import org.eclipse.wst.xsd.ui.internal.refactor.wizard.RefactoringWizardMessages;
+import org.eclipse.wst.xsd.ui.internal.refactor.wizard.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.XSDTypeDefinition;
+import org.w3c.dom.Node;
+
+public class RenameComponentAction extends XSDSelectionDispatchAction {
+
+	private XSDNamedComponent selectedComponent;
+
+	public RenameComponentAction(ISelection selection,
+			Object aModel) {
+		super(selection, aModel);
+	
+	}
+
+	protected boolean canEnable(XSDConcreteComponent selectedObject) {
+
+		selectedComponent = null;
+		if (selectedObject instanceof XSDNamedComponent) {
+			selectedComponent = (XSDNamedComponent) selectedObject;
+
+			// if it's element reference, then this action is not appropriate
+			if (selectedComponent instanceof XSDElementDeclaration) {
+				XSDElementDeclaration element = (XSDElementDeclaration) selectedComponent;
+				if (element.isElementDeclarationReference()) {
+					selectedComponent = null;
+				}
+			}
+			if(selectedComponent instanceof XSDTypeDefinition){
+				XSDTypeDefinition type = (XSDTypeDefinition) selectedComponent;
+				XSDConcreteComponent parent = type.getContainer();
+				if (parent instanceof XSDElementDeclaration) {
+					XSDElementDeclaration element = (XSDElementDeclaration) parent;
+					if(element.getAnonymousTypeDefinition().equals(type)){
+						selectedComponent = null;
+					}
+				}
+				else if(parent instanceof XSDAttributeDeclaration) {
+					XSDAttributeDeclaration element = (XSDAttributeDeclaration) parent;
+					if(element.getAnonymousTypeDefinition().equals(type)){
+						selectedComponent = 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 selectedComponent != null;
+	}
+
+	public void run(ISelection selection) {
+		if (selectedComponent.getName() == null) {
+			selectedComponent.setName(new String());
+		}
+		if (selectedComponent.getSchema() == null) {
+			if (getSchema() != null) {
+				getSchema().updateElement(true);
+			}
+
+		}
+		RefactoringComponent component = new XMLRefactoringComponent(
+				selectedComponent,
+				(IDOMElement)selectedComponent.getElement(), 
+				selectedComponent.getName(),
+				selectedComponent.getTargetNamespace());
+		
+		RenameComponentProcessor processor = new RenameComponentProcessor(
+				component, selectedComponent.getName());
+		RenameRefactoring refactoring = new RenameRefactoring(processor);
+		try {
+			RefactoringWizard wizard = new RenameRefactoringWizard(
+					refactoring,
+					RefactoringWizardMessages.RenameComponentWizard_defaultPageTitle, 
+					RefactoringWizardMessages
+							.RenameComponentWizard_inputPage_description, 
+					null);
+			RefactoringWizardOpenOperation op = new RefactoringWizardOpenOperation(
+					wizard);
+			op.run(XSDEditorPlugin.getShell(), wizard
+					.getDefaultPageTitle());
+			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-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceAction.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceAction.java
new file mode 100644
index 0000000..5cda216
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceAction.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-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.ISelection;
+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.editor.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.RenameResourceProcessor;
+import org.eclipse.wst.xsd.ui.internal.refactor.wizard.RefactoringWizardMessages;
+import org.eclipse.wst.xsd.ui.internal.refactor.wizard.RenameRefactoringWizard;
+
+
+
+public class RenameResourceAction extends SelectionDispatchAction {
+
+
+
+	
+	public RenameResourceAction(ISelection selection)
+	{
+		super(selection);
+	}
+
+	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,
+						RefactoringWizardMessages.RenameComponentWizard_defaultPageTitle, //TODO: provide correct strings
+						RefactoringWizardMessages.RenameComponentWizard_inputPage_description, 
+						null);
+				RefactoringWizardOpenOperation op= new RefactoringWizardOpenOperation(wizard);
+				op.run(XSDEditorPlugin.getShell(), wizard.getDefaultPageTitle());
+			} 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-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceActionDelegate.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceActionDelegate.java
new file mode 100644
index 0000000..073f55d
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceActionDelegate.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-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(structuredSelection);
+				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-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameTargetNamespaceAction.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameTargetNamespaceAction.java
new file mode 100644
index 0000000..b6ac481
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameTargetNamespaceAction.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-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.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.editor.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.refactor.rename.RenameTargetNamespaceProcessor;
+import org.eclipse.wst.xsd.ui.internal.refactor.wizard.RefactoringWizardMessages;
+import org.eclipse.wst.xsd.ui.internal.refactor.wizard.RenameRefactoringWizard;
+
+public class RenameTargetNamespaceAction extends XSDSelectionDispatchAction {
+
+	public RenameTargetNamespaceAction(ISelection selection,
+			Object aModel) {
+		super(selection, aModel);
+		setText(RefactoringWizardMessages.RenameTargetNamespace_text);
+
+	}
+
+
+	protected boolean canEnable(Object selectedObject) {
+
+		return getSchema() != null;
+
+	}
+	
+	public boolean canRun() {
+
+		return getSchema() != null;
+	}
+
+
+	public void run(ISelection selection) {
+
+		
+		RenameTargetNamespaceProcessor processor = new RenameTargetNamespaceProcessor(getSchema(), getSchema().getTargetNamespace());
+		RenameRefactoring refactoring = new RenameRefactoring(processor);
+		try {
+			RefactoringWizard wizard = new RenameRefactoringWizard(
+					refactoring,
+					RefactoringWizardMessages.RenameComponentWizard_defaultPageTitle,//TODO: provide correct strings
+					RefactoringWizardMessages.RenameComponentWizard_inputPage_description, 
+					null);
+			RefactoringWizardOpenOperation op = new RefactoringWizardOpenOperation(
+					wizard);
+			op.run(XSDEditorPlugin.getShell(), wizard
+					.getDefaultPageTitle());
+			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-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/SelectionDispatchAction.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/SelectionDispatchAction.java
new file mode 100644
index 0000000..879eb31
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/SelectionDispatchAction.java
@@ -0,0 +1,194 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-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.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+
+
+
+/**
+ * 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 ISelection selection;
+	
+	private Object model;
+	
+	protected SelectionDispatchAction(ISelection selection) {
+		Assert.isNotNull(selection);
+		this.selection = selection;
+		
+	}
+
+	/**
+	 * Returns the selection provided by the site owning this action.
+	 * 
+	 * @return the site's selection
+	 */	
+	public ISelection getSelection() {
+		return selection;
+	}
+	
+	/**
+	 * 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 final Object getModel()
+	{
+		return model;
+	}
+
+	public final void setModel(Object model)
+	{
+		this.model = model;
+	}
+	
+	public boolean canRun() {
+
+		return true;
+	}
+
+	
+	
+}
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
new file mode 100644
index 0000000..c8d8603
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/XSDRefactorActionGroup.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * 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;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.wst.xsd.ui.internal.refactor.wizard.RefactorActionGroup;
+import org.eclipse.xsd.XSDSchema;
+
+public class XSDRefactorActionGroup extends RefactorActionGroup {
+
+	private static final String MAKE_ELEMENT_GLOBAL = "org.eclipse.wst.xsd.ui.refactor.makeElementGlobal"; //$NON-NLS-1$
+
+	private static final String MAKE_TYPE_GLOBAL = "org.eclipse.wst.xsd.ui.refactor.makeTypeGlobal"; //$NON-NLS-1$
+
+	private static final String RENAME_ELEMENT = "org.eclipse.wst.xsd.ui.refactor.rename.element"; //$NON-NLS-1$
+
+	private static final String RENAME_TARGET_NAMESPCE = "org.eclipse.wst.xsd.ui.refactor.renameTargetNamespace"; //$NON-NLS-1$
+
+	private SelectionDispatchAction fMakeLocalElementGlobal;
+
+	private SelectionDispatchAction fMakeLocalTypeGlobal;
+
+	public XSDRefactorActionGroup(ISelection selection,
+			XSDSchema schema) {
+		super(selection);
+		fEditorActions = new ArrayList();
+		fRenameAction = new RenameAction(selection, schema);
+		fRenameAction.setActionDefinitionId(RENAME_ELEMENT);
+		fEditorActions.add(fRenameAction);
+
+		fRenameTargetNamespace = new RenameTargetNamespaceAction(
+				selection, schema);
+		fRenameTargetNamespace.setActionDefinitionId(RENAME_TARGET_NAMESPCE);
+		fEditorActions.add(fRenameTargetNamespace);
+
+		fMakeLocalElementGlobal = new MakeLocalElementGlobalAction(
+				selection, schema);
+		fMakeLocalElementGlobal.setActionDefinitionId(MAKE_ELEMENT_GLOBAL);
+		fEditorActions.add(fMakeLocalElementGlobal);
+
+		fMakeLocalTypeGlobal = new MakeAnonymousTypeGlobalAction(
+				selection, schema);
+		fMakeLocalTypeGlobal.setActionDefinitionId(MAKE_TYPE_GLOBAL);
+		fEditorActions.add(fMakeLocalTypeGlobal);
+
+		initAction(fRenameAction, selection);
+		initAction(fRenameTargetNamespace, selection);
+		initAction(fMakeLocalElementGlobal, selection);
+		initAction(fMakeLocalTypeGlobal, selection);
+	}
+
+	public void dispose() {
+//		disposeAction(fRenameAction, selection);
+//		disposeAction(fMakeLocalElementGlobal, selection);
+//		disposeAction(fMakeLocalTypeGlobal, selection);
+//		disposeAction(fRenameTargetNamespace, selection);
+		super.dispose();
+	}
+
+}
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
new file mode 100644
index 0000000..d46aa02
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/XSDRefactorGroupActionDelegate.java
@@ -0,0 +1,50 @@
+package org.eclipse.wst.xsd.ui.internal.refactor.actions;
+
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPartSite;
+import org.eclipse.wst.xsd.editor.ISelectionMapper;
+import org.eclipse.wst.xsd.ui.internal.refactor.actions.XSDRefactorActionGroup;
+import org.eclipse.wst.xsd.ui.internal.refactor.wizard.RefactorActionGroup;
+import org.eclipse.wst.xsd.ui.internal.refactor.wizard.RefactorGroupActionDelegate;
+import org.eclipse.wst.xsd.ui.internal.refactor.wizard.RefactorGroupSubMenu;
+import org.eclipse.xsd.XSDSchema;
+
+public class XSDRefactorGroupActionDelegate extends RefactorGroupActionDelegate {
+
+	public XSDRefactorGroupActionDelegate() {
+		super();
+	}
+
+	/**
+	 * Fills the menu with applicable refactor sub-menues
+	 * @param menu The menu to fill
+	 */
+	protected void fillMenu(Menu menu) {
+		if (fSelection == null) {
+			return;
+		}
+		if (workbenchPart != null) {
+			IWorkbenchPartSite site = workbenchPart.getSite();
+			if (site == null)
+				return;
+	
+			IEditorPart editor = site.getPage().getActiveEditor();
+			if (editor != null) {              
+                XSDSchema schema = (XSDSchema)editor.getAdapter(XSDSchema.class);
+                ISelectionMapper mapper = (ISelectionMapper)editor.getAdapter(ISelectionMapper.class);
+			    if (schema != null)
+                {                
+                    ISelection selection = mapper != null ? mapper.mapSelection(fSelection) : fSelection;                    
+					RefactorActionGroup refactorMenuGroup = new XSDRefactorActionGroup(selection, schema);
+					RefactorGroupSubMenu subMenu = new RefactorGroupSubMenu(refactorMenuGroup);
+					subMenu.fill(menu, -1);
+				}				
+			}
+		
+		}
+	
+	}
+}
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
new file mode 100644
index 0000000..078f4c1
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/XSDSelectionDispatchAction.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * 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;
+import org.eclipse.xsd.XSDSchema;
+
+public class XSDSelectionDispatchAction extends SelectionDispatchAction
+{
+
+	
+	
+	public XSDSelectionDispatchAction(ISelection selection, Object model)
+	{
+		super(selection);
+		setModel(model);
+	}
+
+	protected XSDSchema getSchema(){
+		Object model = getModel();
+		if(model instanceof XSDSchema)
+		{
+			return (XSDSchema) model;
+		}
+	
+		return null;
+	}
+
+	
+
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/messages.properties b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/messages.properties
new file mode 100644
index 0000000..48483a1
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/messages.properties
@@ -0,0 +1,41 @@
+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 in {0}: {1} to {2}
+XSDComponentRenameChange.Renaming=Renaming...
+ResourceRenameParticipant.compositeChangeName=XSD file rename references updating changes
+RenameResourceChange.rename_resource_reference_change=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
+XSDComponentRenameParticipant.Component_Refactoring_updates=XML Schema refactoring changes
+WSDLComponentRenameParticipant.Component_Refactoring_updates=WSDL refactoring changes
+RenameComponentProcessor.Component_Refactoring_updates=Component name refactoring changes
+RenameComponentProcessor.Component_Refactoring_update_declatation=Update component declaration/definition
+RenameComponentProcessor.Component_Refactoring_update_reference=Update component reference
+XSDComponentRenameParticipant.xsd_component_rename_participant=XSD component rename participant
+WSDLComponentRenameParticipant.wsdl_component_rename_participant=WSDL component rename participant
+ResourceRenameParticipant.File_Rename_update_reference=File rename refactoring changes
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
new file mode 100644
index 0000000..ebdf3d0
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/ComponentRenameArguments.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * 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;
+import org.eclipse.ltk.core.refactoring.participants.RenameArguments;
+import org.eclipse.wst.xsd.ui.internal.refactor.TextChangeManager;
+
+public class ComponentRenameArguments extends RenameArguments {
+	
+	TextChangeManager changeManager;
+	Map matches;
+	String qualifier;
+
+	public ComponentRenameArguments(String newName, boolean updateReferences) {
+		super(newName, updateReferences);
+	}
+
+	public TextChangeManager getChangeManager() {
+		return changeManager;
+	}
+
+	public void setChangeManager(TextChangeManager changeManager) {
+		this.changeManager = changeManager;
+	}
+
+	public Map getMatches() {
+		return matches;
+	}
+
+	public void setMatches(Map matches) {
+		this.matches = matches;
+	}
+
+	public String getQualifier() {
+		return qualifier;
+	}
+
+	public void setQualifier(String qualifier) {
+		this.qualifier = qualifier;
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameComponentProcessor.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameComponentProcessor.java
new file mode 100644
index 0000000..62b6ac3
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameComponentProcessor.java
@@ -0,0 +1,484 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.rename;
+
+import com.ibm.icu.text.Collator;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.SubProgressMonitor;
+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.TextChange;
+import org.eclipse.ltk.core.refactoring.TextFileChange;
+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.RenameParticipant;
+import org.eclipse.ltk.core.refactoring.participants.RenameProcessor;
+import org.eclipse.ltk.core.refactoring.participants.SharableParticipants;
+import org.eclipse.text.edits.ReplaceEdit;
+import org.eclipse.wst.common.core.search.SearchEngine;
+import org.eclipse.wst.common.core.search.SearchMatch;
+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.core.search.scope.SelectionSearchScope;
+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.wst.xml.core.internal.search.XMLComponentReferencePattern;
+import org.eclipse.wst.xsd.ui.internal.refactor.Checks;
+import org.eclipse.wst.xsd.ui.internal.refactor.INameUpdating;
+import org.eclipse.wst.xsd.ui.internal.refactor.IReferenceUpdating;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringComponent;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
+import org.eclipse.wst.xsd.ui.internal.refactor.TextChangeManager;
+import org.eclipse.wst.xsd.ui.internal.refactor.util.TextChangeCompatibility;
+
+
+
+public class RenameComponentProcessor extends RenameProcessor implements INameUpdating, IReferenceUpdating {
+	public static final String IDENTIFIER = "org.eclipse.wst.xml.refactor.renameComponentProcessor"; //$NON-NLS-1$
+
+	public static String quoteString(String value) {
+		value = value == null ? "" : value;
+
+		StringBuffer sb = new StringBuffer();
+		if (!value.startsWith("\"")) {
+			sb.append("\"");
+		}
+		sb.append(value);
+		if (!value.endsWith("\"")) {
+			sb.append("\"");
+		}
+		return sb.toString();
+	}
+
+	private TextChangeManager changeManager;
+
+	private String newName;
+
+	private RefactoringComponent selectedComponent;
+
+	private boolean updateReferences = true;
+
+	private Map references = new HashMap();
+
+	public RenameComponentProcessor(RefactoringComponent selectedComponent) {
+		this.selectedComponent = selectedComponent;
+	}
+
+	public RenameComponentProcessor(RefactoringComponent selectedComponent, String newName) {
+		this.newName = newName;
+		this.selectedComponent = selectedComponent;
+	}
+
+	private void addDeclarationUpdate(TextChangeManager manager) throws CoreException {
+		String fileStr = selectedComponent.getElement().getModel().getBaseLocation();
+		IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(fileStr));
+		addDeclarationUpdate(manager, file);
+	}
+
+	final void addDeclarationUpdate(TextChangeManager manager, IFile file) throws CoreException {
+
+		String componentName = selectedComponent.getName();
+		String componentNamespace = selectedComponent.getNamespaceURI();
+		QualifiedName elementQName = new QualifiedName(componentNamespace, componentName);
+		QualifiedName typeQName = selectedComponent.getTypeQName();
+
+
+
+		SearchScope scope = new WorkspaceSearchScope();
+		if (file != null) {
+			scope = new SelectionSearchScope(new IResource[]{file});
+		}
+		CollectingSearchRequestor requestor = new CollectingSearchRequestor();
+		SearchPattern pattern = new XMLComponentDeclarationPattern(file, elementQName, typeQName);
+		SearchEngine searchEngine = new SearchEngine();
+		searchEngine.search(pattern, requestor, scope, null, new NullProgressMonitor());
+		List results = requestor.getResults();
+		for (Iterator iter = results.iterator(); iter.hasNext();) {
+			SearchMatch match = (SearchMatch) iter.next();
+			if (match != null) {
+				TextChange textChange = manager.get(match.getFile());
+				String newName = getNewElementName();
+				newName = quoteString(newName);
+
+				ReplaceEdit replaceEdit = new ReplaceEdit(match.getOffset(), match.getLength(), newName);
+				String editName = RefactoringMessages.getString("RenameComponentProcessor.Component_Refactoring_update_declatation");;
+				TextChangeCompatibility.addTextEdit(textChange, editName, replaceEdit);
+			}
+		}
+	}
+
+	void addOccurrences(TextChangeManager manager, IProgressMonitor pm, RefactoringStatus status) throws CoreException {
+
+		String fileStr = selectedComponent.getElement().getModel().getBaseLocation();
+		IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(fileStr));
+
+		String componentName = selectedComponent.getName();
+		String componentNamespace = selectedComponent.getNamespaceURI();
+		QualifiedName elementQName = new QualifiedName(componentNamespace, componentName);
+		QualifiedName typeQName = selectedComponent.getTypeQName();
+
+		SearchEngine searchEngine = new SearchEngine();
+
+		SortingSearchRequestor requestor = new SortingSearchRequestor();
+		SearchPattern pattern = new XMLComponentReferencePattern(file, elementQName, typeQName);
+		searchEngine.search(pattern, requestor, new WorkspaceSearchScope(), null, new NullProgressMonitor());
+		references = requestor.getResults();
+		// for (Iterator iter = references.iterator(); iter.hasNext();) {
+		// SearchMatch match = (SearchMatch) iter.next();
+
+		// TextChange textChange = manager.get(match.getFile());
+		// String newName = getNewElementName();
+		// if(match.getObject() instanceof Node){
+		// Node node = (Node)match.getObject();
+		// if(node instanceof IDOMAttr){
+		// IDOMAttr attr = (IDOMAttr)node;
+		// IDOMElement element = (IDOMElement)attr.getOwnerElement() ;
+		// newName = getNewQName(element, componentNamespace, newName);
+		// }
+		// newName = quoteString(newName);
+		// }
+		//				
+		// ReplaceEdit replaceEdit = new ReplaceEdit(match.getOffset(),
+		// match.getLength(), newName );
+		// String editName =
+		// RefactoringMessages.getString("RenameComponentProcessor.Component_Refactoring_update_reference");
+		// TextChangeCompatibility.addTextEdit(textChange, editName,
+		// replaceEdit);
+
+		// }
+	}
+
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.internal.corext.refactoring.tagging.ITextUpdating#canEnableTextUpdating()
+	 */
+	public boolean canEnableTextUpdating() {
+		return true;
+	}
+
+	public boolean canEnableUpdateReferences() {
+		return true;
+	}
+
+
+	/*
+	 * (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 monitor, CheckConditionsContext context) throws CoreException, OperationCanceledException {
+		Assert.isNotNull(monitor);
+		Assert.isNotNull(context);
+		final RefactoringStatus status = new RefactoringStatus();
+		try {
+			monitor.beginTask("", 2); //$NON-NLS-1$
+			monitor.setTaskName("RefactoringMessages.RenameComponentRefactoring_checking");
+			status.merge(checkNewElementName(getNewElementName()));
+			monitor.worked(1);
+			monitor.setTaskName("RefactoringMessages.RenameComponentRefactoring_searching");
+			status.merge(createRenameChanges(new SubProgressMonitor(monitor, 1)));
+		}
+		finally {
+			monitor.done();
+		}
+		return status;
+	}
+
+
+	/*
+	 * (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
+		Assert.isNotNull(pm);
+		try {
+			return new RefactoringStatus();
+		}
+		finally {
+			pm.done();
+		}
+
+	}
+
+	public final RefactoringStatus checkNewElementName(final String name) {
+		Assert.isNotNull(name);
+		final RefactoringStatus result = Checks.checkName(name);
+		result.merge(Checks.checkComponentName(name));
+		if (Checks.isAlreadyNamed(selectedComponent, name))
+			result.addFatalError("RefactoringMessages.RenameComponentRefactoring_another_name");
+		return result;
+	}
+
+	private Object[] computeDerivedElements() {
+
+		Object[] elements = getElements();
+		// Object[] results = new Object[elements.length];
+		// for(int i=0; i< elements.length; i++){
+		// RefactoringComponent component = (RefactoringComponent)elements[i];
+		// results[i] = component.getAdaptee();
+		//			
+		// }
+		return elements;
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#createChange(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	public Change createChange(IProgressMonitor pm) throws CoreException, OperationCanceledException {
+		// don't create any change now, all the changes are in changeManger
+		// variable and will be combined in postCreateChange method
+		return null;
+	}
+
+	private TextChangeManager updateChangeManager(IProgressMonitor pm, RefactoringStatus status) throws CoreException {
+		TextChangeManager manager = getChangeManager();
+		System.out.println("addDeclarationUpate-------------------");
+		// only one declaration gets updated
+		addDeclarationUpdate(manager);
+		if (getUpdateReferences()) {
+			System.out.println("addOccurences--------------------------");
+			addOccurrences(manager, pm, status);
+		}
+		return manager;
+	}
+
+	private RefactoringStatus createRenameChanges(final IProgressMonitor monitor) throws CoreException {
+		Assert.isNotNull(monitor);
+		final RefactoringStatus status = new RefactoringStatus();
+		try {
+			monitor.beginTask("RefactoringMessages.RenameComponentRefactoring_searching", 1);
+			updateChangeManager(new SubProgressMonitor(monitor, 1), status);
+		}
+		finally {
+			monitor.done();
+		}
+		return status;
+	}
+
+	public TextChangeManager getChangeManager() {
+
+		if (changeManager == null) {
+			changeManager = new TextChangeManager(false);
+		}
+		return changeManager;
+	}
+
+	/*
+	 * (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[]{"org.eclipse.jdt.core.javanature"};
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.internal.corext.refactoring.tagging.ITextUpdating#getCurrentElementName()
+	 */
+	public String getCurrentElementName() {
+		//
+		return selectedComponent.getName();
+	}
+
+
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#getElements()
+	 */
+	public Object[] getElements() {
+		Object model = selectedComponent.getModelObject();
+		if (model != null) {
+			return new Object[]{model};
+		}
+		return new Object[0];
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#getIdentifier()
+	 */
+	public String getIdentifier() {
+		return IDENTIFIER;
+	}
+
+	public String getNewElementName() {
+		return newName;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#getProcessorName()
+	 */
+	public String getProcessorName() {
+		return RefactoringMessages.getFormattedString("RenameComponentRefactoring.name", //$NON-NLS-1$
+					new String[]{selectedComponent.getNamespaceURI() + ":" + selectedComponent.getName(), newName});
+
+	}
+
+
+	public boolean getUpdateReferences() {
+		return updateReferences;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#isApplicable()
+	 */
+	public boolean isApplicable() throws CoreException {
+		if (selectedComponent == 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;
+	}
+
+	protected void loadDerivedParticipants(RefactoringStatus status, List result, Object[] derivedElements, ComponentRenameArguments arguments, String[] natures, SharableParticipants shared) throws CoreException {
+		if (derivedElements != null) {
+			for (int i = 0; i < derivedElements.length; i++) {
+				RenameParticipant[] participants = ParticipantManager.loadRenameParticipants(status, this, derivedElements[i], arguments, natures, shared);
+				result.addAll(Arrays.asList(participants));
+			}
+		}
+
+	}
+
+	/*
+	 * (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 {
+		ComponentRenameArguments arguments = new ComponentRenameArguments(getNewElementName(), getUpdateReferences());
+		arguments.setMatches(references);
+		arguments.setQualifier(selectedComponent.getNamespaceURI());
+		// pass in changeManger to the participants so that it can collect all
+		// changes/per files
+		arguments.setChangeManager(getChangeManager());
+		loadDerivedParticipants(status, result, computeDerivedElements(), arguments, natures, shared);
+	}
+
+	protected void loadElementParticipants(RefactoringStatus status, List result, RenameArguments arguments, String[] natures, SharableParticipants shared) throws CoreException {
+		Object[] elements = new Object[0];// getElements();
+		for (int i = 0; i < elements.length; i++) {
+			result.addAll(Arrays.asList(ParticipantManager.loadRenameParticipants(status, this, elements[i], arguments, natures, shared)));
+		}
+	}
+
+
+	public final RefactoringParticipant[] loadParticipants(RefactoringStatus status, SharableParticipants sharedParticipants) throws CoreException {
+		RenameArguments arguments = new RenameArguments(getNewElementName(), getUpdateReferences());
+		String[] natures = getAffectedProjectNatures();
+		List result = new ArrayList();
+		loadElementParticipants(status, result, arguments, natures, sharedParticipants);
+		loadDerivedParticipants(status, result, natures, sharedParticipants);
+		for (Iterator i = result.iterator(); i.hasNext();) {
+			Object o = i.next();
+			if (o instanceof XMLComponentRenameParticipant) {
+				XMLComponentRenameParticipant p = (XMLComponentRenameParticipant) o;
+				// getChangeManager()
+				p.setChangeManager(getChangeManager());
+			}
+		}
+
+		return (RefactoringParticipant[]) result.toArray(new RefactoringParticipant[result.size()]);
+	}
+
+	public void setNewElementName(String newName) {
+		Assert.isNotNull(newName);
+		this.newName = newName;
+	}
+
+	public void setUpdateReferences(boolean update) {
+		updateReferences = update;
+
+	}
+
+	public Change postCreateChange(Change[] participantChanges, IProgressMonitor pm) throws CoreException, OperationCanceledException {
+		Assert.isNotNull(pm);
+		try {
+			String changeName = RefactoringMessages.getString("RenameComponentProcessor.Component_Refactoring_updates");
+			TextChange[] changes = changeManager.getAllChanges();
+			// System.out.println("all changes(" + getChangeManager() + ")" +
+			// changes.length);
+			// System.out.println("add cus " +
+			// changeManager.getAllCompilationUnits().length);
+			Comparator c = new Comparator() {
+				public int compare(Object o1, Object o2) {
+					TextFileChange c1 = (TextFileChange) o1;
+					TextFileChange c2 = (TextFileChange) o2;
+					return Collator.getInstance().compare(c1.getFile().getFullPath(), c2.getFile().getFullPath());
+				}
+			};
+			if (changes.length > 0) {
+				// Arrays.sort(changes, c);
+				CompositeChange compositeChange = new CompositeChange("!" + changeName, changes);
+				compositeChange.markAsSynthetic();
+				return compositeChange;
+			}
+			else {
+				return null;
+			}
+
+		}
+		finally {
+			pm.done();
+		}
+	}
+
+
+
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameResourceProcessor.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameResourceProcessor.java
new file mode 100644
index 0000000..f0a326e
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameResourceProcessor.java
@@ -0,0 +1,173 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-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.Assert;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+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.INameUpdating;
+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-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameTargetNamespaceProcessor.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameTargetNamespaceProcessor.java
new file mode 100644
index 0000000..03fe81e
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameTargetNamespaceProcessor.java
@@ -0,0 +1,418 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.rename;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.emf.common.util.URI;
+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.TextChange;
+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.RenameParticipant;
+import org.eclipse.ltk.core.refactoring.participants.RenameProcessor;
+import org.eclipse.ltk.core.refactoring.participants.SharableParticipants;
+import org.eclipse.wst.xsd.ui.internal.refactor.INameUpdating;
+import org.eclipse.wst.xsd.ui.internal.refactor.IReferenceUpdating;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringComponent;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
+import org.eclipse.wst.xsd.ui.internal.refactor.TextChangeManager;
+import org.eclipse.xsd.XSDSchema;
+
+
+public class RenameTargetNamespaceProcessor extends RenameProcessor implements INameUpdating, IReferenceUpdating
+{
+	private String newNamespace;
+	private boolean updateReferences = true;
+	private TextChangeManager changeManager;
+	private XSDSchema model;
+
+
+	public static final String IDENTIFIER = "org.eclipse.wst.ui.xsd.renameComponentProcessor"; //$NON-NLS-1$
+
+	public RenameTargetNamespaceProcessor(XSDSchema model, String newName)
+	{
+		this.model = model;
+		this.newNamespace = newName;
+	}
+
+	/*
+	 * (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 model.getTargetNamespace();
+	}
+
+	/*
+	 * (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[]{"org.eclipse.jdt.core.javanature"};
+	}
+
+	/*
+	 * (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
+	{
+		String newCUName= getNewElementName(); //$NON-NLS-1$
+		RenameArguments arguments= new RenameArguments(newCUName, getUpdateReferences());
+		loadDerivedParticipants(status, result, 
+			computeDerivedElements(), arguments, 
+			 natures, shared);
+	}
+	
+	protected void loadDerivedParticipants(RefactoringStatus status, List result, Object[] derivedElements, 
+			RenameArguments arguments,  String[] natures, SharableParticipants shared) throws CoreException {
+		if (derivedElements != null) {
+			for (int i= 0; i < derivedElements.length; i++) {
+				RenameParticipant[] participants= ParticipantManager.loadRenameParticipants(status, 
+					this, derivedElements[i], 
+					arguments, natures, shared);
+				result.addAll(Arrays.asList(participants));
+			}
+		}
+		
+	}
+	
+	private Object[] computeDerivedElements() {
+
+		Object[] elements = getElements();
+		Object[] results = new Object[elements.length];
+		for(int i=0; i< elements.length; i++){
+			RefactoringComponent component = (RefactoringComponent)elements[i];
+			results[i] = component.getModelObject();
+			
+		}
+		return results;
+		
+	}
+	
+
+	/*
+	 * (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
+	{
+		try
+		{
+			RefactoringStatus result = new RefactoringStatus();
+			pm.beginTask("", 9); //$NON-NLS-1$
+			changeManager = createChangeManager(new SubProgressMonitor(pm, 1),
+					result);
+			return result;
+		} finally
+		{
+			pm.done();
+		}
+		
+
+	}
+
+	
+	/*
+	 * (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
+	{
+		try
+		{
+			String changeName = RefactoringMessages.getString("RenameComponentProcessor.Component_Refactoring_updates");
+			return new CompositeChange(changeName, changeManager.getAllChanges());
+		} finally
+		{
+			pm.done();
+		}
+
+		// Change[] changes = ComponentRenameChange.createChangesFor(
+		// this.fNamedComponent, getNewElementName());
+		//
+		// if (changes.length > 0)
+		// {
+		// CompositeChange multiChange = null;
+		// multiChange = new CompositeChange(
+		// "XSD component rename participant changes", changes); //$NON-NLS-1$
+		// TODO: externalize string
+		// return multiChange;
+		// } else
+		// {
+		//
+		// return new ComponentRenameChange(
+		// fNamedComponent,
+		// fNamedComponent.getName(),
+		// getNewElementName(),
+		// fNamedComponent.getSchema());
+		// }
+		
+		
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#getElements()
+	 */
+	public Object[] getElements()
+	{
+		return new Object[] { model };
+	}
+
+	/*
+	 * (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[]
+				{
+						getCurrentElementName(),
+						getNewElementName() });
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#isApplicable()
+	 */
+	public boolean isApplicable() throws CoreException
+	{
+		if (getModel() == 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();
+	}
+
+	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)));
+		}
+	}
+	
+	private TextChangeManager createChangeManager(IProgressMonitor pm,
+			RefactoringStatus status) throws CoreException
+	{
+		TextChangeManager manager = new TextChangeManager(false);
+		// only one declaration gets updated
+		addDeclarationUpdate(manager);
+		return manager;
+	}
+
+	private void addDeclarationUpdate(TextChangeManager manager)
+
+	{
+		String fileStr = getModel().getSchemaLocation();
+		URI uri = URI.createPlatformResourceURI(fileStr);
+		try
+		{
+			URL url = new URL(uri.toString());
+			url = Platform.resolve(url);
+			if(url != null){
+				IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+				IFile file = root.getFileForLocation(new Path(url.getFile()));
+				if(file != null ){
+					TextChange change = manager.get(file);
+					addDeclarationUpdate(change);
+				}
+			}
+		} catch (MalformedURLException e)
+		{
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (IOException e)
+		{
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
+		
+	}
+	
+	
+
+	final void addDeclarationUpdate(TextChange change) 
+	{
+//		String editName = RefactoringMessages.getString("RenameComponentProcessor.Component_Refactoring_update_declatation");;
+//	  
+//		NamedComponentRenamer renamer = new NamedComponentRenamer(
+//				selectedComponent.getElement(), newNamespace);
+//		renamer.renameComponent();
+//		List textEdits = renamer.getTextEdits();
+//		for (int j = 0; j < textEdits.size(); j++)
+//		{
+//			ReplaceEdit replaceEdit = (ReplaceEdit) textEdits
+//					.get(j);
+//			TextChangeCompatibility.addTextEdit(change,
+//					editName, replaceEdit);
+//		}
+	}
+
+	public void setNewElementName(String newName)
+	{
+		this.newNamespace = newName;
+	}
+
+	public String getNewElementName()
+	{
+		return newNamespace;
+	}
+
+	
+
+	public boolean canEnableUpdateReferences()
+	{
+		return true;
+	}
+
+	public boolean getUpdateReferences()
+	{
+		return updateReferences;
+	}
+
+	public void setUpdateReferences(boolean update)
+	{
+		updateReferences = update;
+		
+	}
+
+	public final TextChangeManager getChangeManager()
+	{
+		return changeManager;
+	}
+
+	public final XSDSchema getModel()
+	{
+		return model;
+	}
+	
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/ResourceRenameChange.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/ResourceRenameChange.java
new file mode 100644
index 0000000..ed6650c
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/ResourceRenameChange.java
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-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-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/ResourceRenameParticipant.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/ResourceRenameParticipant.java
new file mode 100644
index 0000000..ecb772f
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/ResourceRenameParticipant.java
@@ -0,0 +1,295 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-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.List;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.core.runtime.content.IContentDescription;
+import org.eclipse.core.runtime.content.IContentType;
+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.TextChange;
+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;
+import org.eclipse.wst.xsd.ui.internal.refactor.TextChangeManager;
+import org.eclipse.xsd.XSDNamedComponent;
+import org.eclipse.xsd.XSDSchema;
+
+/**
+ * This rename participant creates text changes for the references of the XSD and WSDL files
+ */
+public class ResourceRenameParticipant extends RenameParticipant {
+	
+	private IFile file = null;
+	private TextChangeManager changeManager;
+
+	
+	private static String XSD_CONTENT_TYPE_ID = "org.eclipse.wst.xsd.core.xsdsource";
+	private static String WSDL_CONTENT_TYPE_ID = "org.eclipse.wst.wsdl.wsdlsource";
+
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#initialize(java.lang.Object)
+	 */
+	protected boolean initialize(Object element) {
+		if(element instanceof IFile) {
+			// check if file has XSD or WSDL content
+			IFile aFile = (IFile) element;
+			try {
+				IContentDescription description = aFile.getContentDescription();
+				if ( description == null )
+  				return false;
+				IContentType contentType = description.getContentType();
+				if(contentType != null){
+					if(XSD_CONTENT_TYPE_ID.equals(contentType.getId()) ||
+							WSDL_CONTENT_TYPE_ID.equals(contentType.getId())){
+						file = aFile;
+						return true;
+					}
+				}
+			} catch (CoreException e) {
+				return false;
+			}
+		}
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#getName()
+	 */
+	public String getName() {
+		return RefactoringMessages.getString("ResourceRenameParticipant.compositeChangeName");
+	}
+	
+	private IPath getNewFilePath() {
+		
+		IPath oldPath = file.getRawLocation();
+		IPath newPath = oldPath.removeLastSegments(1).append(getArguments().getNewName());
+		return newPath;
+	}
+
+	public RefactoringStatus checkConditions(IProgressMonitor pm,
+			CheckConditionsContext context) throws OperationCanceledException
+	{
+		RefactoringStatus result = new RefactoringStatus();
+		try
+		{
+			pm.beginTask("", 9); //$NON-NLS-1$
+			changeManager = createChangeManager(new SubProgressMonitor(pm, 1),
+					result);
+			
+		} catch(CoreException e){
+			result.addFatalError(e.toString());
+		}
+		finally
+		{
+			pm.done();
+		}
+		return result;
+
+	}
+	
+	
+
+	public Change createChange(IProgressMonitor pm) throws CoreException,
+			OperationCanceledException
+	{
+		try
+		{
+			String changeName = RefactoringMessages.getString("RenameResourceChange.rename_resource_reference_change");
+			TextChange[] changes =  changeManager.getAllChanges();
+			if(changes.length > 0){
+				return new CompositeChange(changeName, changes);
+			}
+			else{
+				return null;
+			}
+			
+		} finally
+		{
+			pm.done();
+		}
+
+	}
+	
+	
+	private TextChangeManager createChangeManager(IProgressMonitor pm,
+			RefactoringStatus status) throws CoreException
+	{
+		TextChangeManager manager = new TextChangeManager(false);
+		// only one declaration gets updated
+		//addDeclarationUpdate(manager);
+		if (getArguments().getUpdateReferences())
+			addOccurrences(manager, pm, status);
+		return manager;
+	}
+
+
+
+	void addOccurrences(TextChangeManager manager, IProgressMonitor pm,
+			RefactoringStatus status) throws CoreException
+	{
+//		
+//		Object[] occurrences = SearchTools.getFileDependencies(file);
+//		pm.beginTask("", occurrences.length); //$NON-NLS-1$
+//		
+//		for (int i = 0; i < occurrences.length; i++)
+//		{
+//			Object object = occurrences[i];
+//
+//			if (object instanceof SearchResultGroup)
+//			{
+//				SearchResultGroup searchResult = (SearchResultGroup) object;
+//				if (searchResult == null)
+//					continue;
+//				
+//				IFile referencingFile = (IFile)searchResult.getResource();
+//					
+//				resourceSet = new ResourceSetImpl();
+//				// for each result file create XSD model and get component from that model
+//				resourceSet.getAdapterFactories().add(
+//						new XSDSchemaLocationResolverAdapterFactory());
+//				URI uri = URI.createFileURI(referencingFile.getLocation().toPortableString());
+//				try
+//				{
+//					XSDSchema schema = XSDFactory.eINSTANCE.createXSDSchema();
+//					IStructuredModel structuredModel = StructuredModelManager.getModelManager().getModelForRead(referencingFile);
+//					IDOMModel domModel = (IDOMModel) structuredModel;
+//					Resource resource = new XSDResourceImpl();
+//					resource.setURI(uri);
+//					schema = XSDFactory.eINSTANCE.createXSDSchema();
+//					resource.getContents().add(schema);
+//					resourceSet.getResources().add(resource);
+//					schema.setElement(domModel.getDocument().getDocumentElement());
+//					// get target namespace 
+//					String stringPath = file.getLocation().toString();
+//					String targetNamespace = XMLQuickScan.getTargetNamespace(stringPath);
+//					targetNamespace = targetNamespace == null ? "" : targetNamespace;
+//
+//					List textEdits = new ArrayList();
+//					SearchMatch[] matches = searchResult.getSearchResults();
+//					
+//					for (int j = 0; j < matches.length; j++) {
+//						SearchMatch match = matches[j];
+//						
+//						FileReferenceRenamer renamer = new FileReferenceRenamer(
+//								match.getAttrValue(), targetNamespace, getNewFilePath().toString(), schema);
+//						renamer.visitSchema(schema);
+//					    textEdits.addAll(renamer.getTextEdits());
+//					}
+//					
+//					
+//					if(!textEdits.isEmpty()){
+//						TextChange textChange = manager.get(referencingFile);
+//						for (int j = 0; j < textEdits.size(); j++)
+//						{
+//							ReplaceEdit replaceEdit = (ReplaceEdit) textEdits
+//									.get(j);
+//							String editName = RefactoringMessages.getString("ResourceRenameParticipant.File_Rename_update_reference");
+//							TextChangeCompatibility.addTextEdit(textChange,
+//									editName, replaceEdit);
+//						}
+//					}
+//					
+//				} catch (Exception e)
+//				{
+//					e.printStackTrace();
+//				} finally
+//				{
+//
+//				}
+//			}
+//		}
+	}
+	
+	
+	public  class ReferenceLocationFinder
+	{
+		protected XSDNamedComponent component;
+		protected String name;
+		protected XSDSchema referencingSchema;
+		protected List results = new ArrayList();
+
+		public ReferenceLocationFinder(XSDNamedComponent component,
+				String name, XSDSchema referencingSchema)
+		{
+			this.component = component;
+			this.name = name;
+			this.referencingSchema = referencingSchema;
+		}
+
+		public void run()
+		{
+			
+			//XSDSwitch xsdSwitch = new XSDSwitch()
+//			{
+//				public Object caseXSDTypeDefinition(XSDTypeDefinition object)
+//				{
+//					GlobalTypeReferenceRenamer renamer = new GlobalTypeReferenceRenamer(
+//							object.getName(), object.getTargetNamespace(), name, referencingSchema);
+//					renamer.visitSchema(referencingSchema);
+//					results.addAll(renamer.getTextEdits());
+//					return null;
+//				}
+//
+//				public Object caseXSDElementDeclaration(
+//						XSDElementDeclaration object)
+//				{
+//					if (object.isGlobal())
+//					{
+//						GlobalElementRenamer renamer = new GlobalElementRenamer(
+//								object.getName(), object.getTargetNamespace(), name, referencingSchema);
+//						renamer.visitSchema(referencingSchema);
+//						results.addAll(renamer.getTextEdits());
+//					}
+//					return null;
+//				}
+//
+//				public Object caseXSDModelGroupDefinition(
+//						XSDModelGroupDefinition object)
+//				{
+//					GlobalGroupRenamer renamer = new GlobalGroupRenamer(
+//							object.getName(), object.getTargetNamespace(), name, referencingSchema);
+//					renamer.visitSchema(referencingSchema);
+//					return null;
+//				}
+//			};
+			//xsdSwitch.doSwitch(component);
+//			component.setName(name);
+//			try
+//			{
+//				referencingSchema.eResource().save(new HashMap());
+//			} catch (IOException e)
+//			{
+//				e.printStackTrace();
+//			}
+
+		}
+
+		public final List getResults()
+		{
+			return results;
+		}
+	}
+	
+	
+
+
+
+}
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
new file mode 100644
index 0000000..d140a8c
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/SortingSearchRequestor.java
@@ -0,0 +1,87 @@
+/*******************************************************************************
+ * 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;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.wst.common.core.search.SearchMatch;
+import org.eclipse.wst.common.core.search.SearchRequestor;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+public class SortingSearchRequestor extends SearchRequestor {
+	
+	public static String NONAMESPACE = "nonamespace";
+
+	
+		private Map fFound;
+
+		public SortingSearchRequestor() {
+			fFound= new HashMap();
+		}
+		
+
+		
+		/**
+		 * @return a List of {@link SearchMatch}es (sorted by namespace)
+		 */
+		public Map/* namespace - <SearchMatch>*/ getResults() {
+			return fFound;
+		}
+
+
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.wst.common.core.search.internal.provisional.SearchRequestor#acceptSearchMatch(org.eclipse.wst.common.search.internal.provisional.SearchMatch)
+		 */
+		public void acceptSearchMatch(SearchMatch match) throws CoreException {
+
+			
+			if(match != null && match.getObject() instanceof Node){
+				Node node = (Node)match.getObject();
+				Element domElement = null;
+				switch (node.getNodeType()) {
+				case Node.ATTRIBUTE_NODE:
+					domElement = ((Attr)node).getOwnerElement();
+					break;
+				case Node.ELEMENT_NODE:
+					domElement = ((Element)node);
+					break;
+				default:
+					break;
+				}
+				String namespace = domElement.getNamespaceURI();
+				if(namespace == null || namespace.equals("")){
+					namespace = NONAMESPACE;
+				}
+				List matches = getMatches(namespace);
+				matches.add(match);			
+			}
+			
+		}
+		
+		private List getMatches(String namespace){
+			Object matches = fFound.get(namespace);
+			if(!(matches instanceof List)){
+				matches = new ArrayList();
+				fFound.put(namespace, matches);
+			}
+			return (List)matches;
+			
+		}
+		
+	
+}
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
new file mode 100644
index 0000000..2b2904c
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/XMLComponentRenameParticipant.java
@@ -0,0 +1,140 @@
+/*******************************************************************************
+ * 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;
+import java.util.List;
+
+import org.eclipse.core.runtime.Assert;
+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.ltk.core.refactoring.Change;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.TextChange;
+import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
+import org.eclipse.ltk.core.refactoring.participants.RenameParticipant;
+import org.eclipse.text.edits.ReplaceEdit;
+import org.eclipse.wst.common.core.search.SearchMatch;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
+import org.eclipse.wst.xsd.ui.internal.refactor.TextChangeManager;
+import org.eclipse.wst.xsd.ui.internal.refactor.util.TextChangeCompatibility;
+import org.eclipse.xsd.util.XSDConstants;
+import org.w3c.dom.Node;
+
+public class XMLComponentRenameParticipant extends RenameParticipant {
+	
+	protected SearchMatch match;
+
+	protected TextChangeManager changeManager;
+	protected List matches;
+
+    
+    
+	protected boolean initialize(Object element) {
+		
+		if(getArguments() instanceof ComponentRenameArguments){
+			// changeManger is passed in from the RenameComponentProcessor to collect all the changes
+			changeManager = ((ComponentRenameArguments)getArguments()).getChangeManager();
+		}
+		
+		return false;
+	}
+	
+	public String getName() {
+		return "XML Component Rename Participant";
+	}
+
+	public RefactoringStatus checkConditions(IProgressMonitor monitor,
+			CheckConditionsContext context) throws OperationCanceledException {
+		return null;
+	}
+	
+	public TextChangeManager getChangeManager(){
+		
+		if(changeManager == null){
+				changeManager = new TextChangeManager(false);
+		}
+		return changeManager;
+		
+	}
+	
+	private RefactoringStatus createRenameChanges(final IProgressMonitor monitor) throws CoreException {
+		Assert.isNotNull(monitor);
+		final RefactoringStatus status= new RefactoringStatus();
+		try {
+			monitor.beginTask("RefactoringMessages.RenameComponentRefactoring_searching", 1); 
+			createRenameChanges(new SubProgressMonitor(monitor, 1));
+			//updateChangeManager(new SubProgressMonitor(monitor, 1), status);
+		} finally {
+			monitor.done();
+		}
+		return status;
+	}
+
+	public Change createChange(IProgressMonitor pm) throws CoreException,
+			OperationCanceledException {
+		//System.out.println("createChange("  + getChangeManager() + ")" + matches.size());
+		for (Iterator iter = matches.iterator(); iter.hasNext();) {
+			SearchMatch match = (SearchMatch) iter.next();
+			TextChange textChange = getChangeManager().get(match.getFile());
+			String newName = getArguments().getNewName();
+			String qualifier = "";
+			if(getArguments() instanceof ComponentRenameArguments){
+				qualifier = ((ComponentRenameArguments)getArguments()).getQualifier();
+			}
+			if(match.getObject() instanceof Node){
+				Node node = (Node)match.getObject();
+				if(node instanceof IDOMAttr){
+					IDOMAttr attr = (IDOMAttr)node;
+					IDOMElement element = (IDOMElement)attr.getOwnerElement() ;
+					newName = getNewQName(element, qualifier, newName);
+				}
+				newName = RenameComponentProcessor.quoteString(newName);
+			}
+			
+			ReplaceEdit replaceEdit = new ReplaceEdit(match.getOffset(), match.getLength(), newName );
+			String editName = RefactoringMessages.getString("RenameComponentProcessor.Component_Refactoring_update_reference");
+          //  System.out.println("textChange " + textChange + "/ replaceEdit " + replaceEdit);
+			TextChangeCompatibility.addTextEdit(textChange, editName, replaceEdit);
+   		}
+		// don't create any change now, all the changes are in changeManger variable and will be combined in RenameComponentProcessor.postCreateChange method
+		return null;
+	}
+	
+	private static String getNewQName(Node node, String targetNamespace, String newName) {
+		StringBuffer sb = new StringBuffer();
+		if (newName != null) {
+			String prefix = XSDConstants.lookupQualifier(node, targetNamespace);
+			if (prefix != null && prefix.length() > 0) {
+				sb.append(prefix);
+				sb.append(":");
+				sb.append(newName);
+			} else {
+				sb.append(newName);
+			}
+		} else {
+			sb.append(newName);
+		}
+
+		return sb.toString();
+	}
+
+  public void setChangeManager(TextChangeManager changeManager)
+  {
+    this.changeManager = changeManager;
+  }
+
+}
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
new file mode 100644
index 0000000..3d169fd
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/XSDComponentRenameParticipant.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * 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;
+import org.eclipse.wst.xsd.ui.internal.search.IXSDSearchConstants;
+import org.eclipse.xsd.XSDNamedComponent;
+
+/**
+ * This participant takes case of renaming matches that are XSD components
+ */
+public class XSDComponentRenameParticipant extends XMLComponentRenameParticipant {
+
+protected boolean initialize(Object element) {
+		super.initialize(element);
+		if(element instanceof XSDNamedComponent){
+			if(getArguments() instanceof ComponentRenameArguments){
+				matches = (List)((ComponentRenameArguments)getArguments()).getMatches().get(IXSDSearchConstants.XMLSCHEMA_NAMESPACE);
+			}
+			if(matches != null){
+				return true;
+			}
+		}
+		return false;
+	}
+
+	public String getName() {
+		
+		return "XSD component rename participant";
+	}
+
+
+
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/structure/AbstractCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/structure/AbstractCommand.java
new file mode 100644
index 0000000..3972831
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/structure/AbstractCommand.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * 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.structure;
+
+import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.w3c.dom.Element;
+
+public abstract class AbstractCommand 
+{
+  private XSDConcreteComponent parent;
+  private XSDConcreteComponent model;
+
+  protected AbstractCommand(XSDConcreteComponent parent)
+  {
+    this.parent = parent;
+  }
+  
+  public abstract void run();
+
+  protected XSDConcreteComponent getParent()
+  {
+    return parent;
+  }
+  
+  public XSDConcreteComponent getModelObject()
+  {
+    return model;
+  }
+  
+  protected void setModelObject(XSDConcreteComponent model)
+  {
+    this.model = model;
+  }
+  
+  // Establish part-whole relationship
+  protected abstract boolean adopt(XSDConcreteComponent model);
+
+  protected void formatChild(Element child)
+  {
+    if (child instanceof IDOMNode)
+    {
+      IDOMModel model = ((IDOMNode)child).getModel();
+      try
+      {
+        // tell the model that we are about to make a big model change
+        model.aboutToChangeModel();
+        
+        IStructuredFormatProcessor formatProcessor = new FormatProcessorXML();
+        formatProcessor.formatNode(child);
+      }
+      finally
+      {
+        // tell the model that we are done with the big model change
+        model.changedModel(); 
+      }
+    }
+  }
+
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeAnonymousTypeGlobalCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeAnonymousTypeGlobalCommand.java
new file mode 100644
index 0000000..95f96a4
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeAnonymousTypeGlobalCommand.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.structure;
+
+import org.eclipse.xsd.XSDAttributeDeclaration;
+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;
+
+public final class MakeAnonymousTypeGlobalCommand extends AbstractCommand {
+
+	String fNewName;
+
+	public MakeAnonymousTypeGlobalCommand(XSDConcreteComponent element,
+			String newName) {
+		super(element.getContainer());
+		setModelObject(element);
+		fNewName = newName;
+	}
+
+	public void run() {
+		XSDConcreteComponent model = getModelObject();
+		XSDConcreteComponent parent = model.getContainer();
+		XSDTypeDefinition globalTypeDef = null;
+		if (model instanceof XSDComplexTypeDefinition) {
+			if (parent instanceof XSDElementDeclaration) {
+				// clone typedef with it's content and set it global
+				globalTypeDef = (XSDComplexTypeDefinition) model
+						.cloneConcreteComponent(true, false);
+				globalTypeDef.setName(fNewName);
+				parent.getSchema().getContents().add(globalTypeDef);
+				((XSDElementDeclaration) parent)
+						.setTypeDefinition(globalTypeDef);
+			}
+		} else if (model instanceof XSDSimpleTypeDefinition) {
+
+			XSDSimpleTypeDefinition typeDef = (XSDSimpleTypeDefinition) model;
+			if (parent instanceof XSDElementDeclaration) {
+				// clone typedef with it's content and set it global
+				globalTypeDef = (XSDSimpleTypeDefinition) typeDef
+						.cloneConcreteComponent(true, false);
+				globalTypeDef.setName(fNewName);
+				parent.getSchema().getContents().add(globalTypeDef);
+				((XSDElementDeclaration) parent)
+						.setTypeDefinition(globalTypeDef);
+				formatChild(globalTypeDef.getElement());
+
+			} else if (parent instanceof XSDAttributeDeclaration) {
+				// clone typedef with it's content and set it global
+				globalTypeDef = (XSDSimpleTypeDefinition) typeDef
+						.cloneConcreteComponent(true, false);
+				globalTypeDef.setName(fNewName);
+				parent.getSchema().getContents().add(globalTypeDef);
+				((XSDAttributeDeclaration) parent)
+						.setTypeDefinition((XSDSimpleTypeDefinition) globalTypeDef);
+
+			}
+
+		}
+
+		formatChild(globalTypeDef.getElement());
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.xsd.ui.internal.commands.AbstractCommand#adopt(org.eclipse.xsd.XSDConcreteComponent)
+	 */
+	protected boolean adopt(XSDConcreteComponent model) {
+		// TODO Auto-generated method stub
+		return true;
+	}
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeLocalElementGlobalCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeLocalElementGlobalCommand.java
new file mode 100644
index 0000000..28bc4ac
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeLocalElementGlobalCommand.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.structure;
+
+import org.eclipse.xsd.XSDComplexTypeContent;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDFactory;
+import org.eclipse.xsd.XSDModelGroup;
+import org.eclipse.xsd.XSDParticle;
+import org.eclipse.xsd.XSDTypeDefinition;
+
+public final class MakeLocalElementGlobalCommand extends AbstractCommand
+{
+	
+  public MakeLocalElementGlobalCommand
+    (XSDConcreteComponent element)
+  {
+    super(element.getContainer());
+    setModelObject(element);
+  }
+  
+  public void run()
+  {
+    
+   if(getModelObject() instanceof XSDElementDeclaration){
+   
+	   XSDElementDeclaration element = (XSDElementDeclaration)getModelObject();
+ 	XSDConcreteComponent parent = getParent();
+ 	XSDConcreteComponent container = parent.getContainer();
+ 	
+ 	// clone element with it's content and set it global
+	XSDConcreteComponent  elementDecl = ((XSDElementDeclaration)getModelObject()).cloneConcreteComponent(true, true);
+ 	container.getSchema().getContents().add(elementDecl);
+ 	
+ 	// create local element and set it's reference to the global one
+ 	XSDElementDeclaration elementRef = 
+	      XSDFactory.eINSTANCE.createXSDElementDeclaration();
+	elementRef.setValue(element.getValue());
+    elementRef.setResolvedElementDeclaration((XSDElementDeclaration)elementDecl); 
+    
+    // now set content models
+ 	if(parent instanceof XSDComplexTypeContent){
+ 		if(container instanceof XSDModelGroup){
+ 			XSDModelGroup modelGroup = (XSDModelGroup)container;
+ 			// disconnect parent from its container
+ 			int index = modelGroup.getContents().indexOf(parent);
+ 			 XSDParticle particle = 
+ 			      XSDFactory.eINSTANCE.createXSDParticle();
+ 		    particle.setContent(elementRef);
+ 		    modelGroup.getContents().add(index, particle); 
+ 		   
+ 			modelGroup.getContents().remove(parent);
+ 		    modelGroup.updateElement(true);
+  		    formatChild(modelGroup.getElement());
+ 		}
+ 	}
+ 	else if(parent instanceof XSDTypeDefinition){
+		System.out.println("MakeLocalElementGlobalCommand.run: parent instanceof XSDTypeDefinition");
+		 		
+ 	}
+ 	
+ 	container.getSchema().updateElement(true);
+    formatChild(elementDecl.getElement());
+  
+   }
+
+  }
+	/* (non-Javadoc)
+	 * @see org.eclipse.wst.xsd.ui.internal.commands.AbstractCommand#adopt(org.eclipse.xsd.XSDConcreteComponent)
+	 */
+	protected boolean adopt(XSDConcreteComponent model) {
+		// TODO Auto-generated method stub
+		return true;
+	}
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeTypeGlobalChange.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeTypeGlobalChange.java
new file mode 100644
index 0000000..b737c45
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeTypeGlobalChange.java
@@ -0,0 +1,168 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-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.wst.xml.core.internal.document.DocumentImpl;
+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);
+			// TODO: remove Display
+			//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,
+							RefactoringMessages
+									.getString("_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-refactor/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeTypeGlobalProcessor.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeTypeGlobalProcessor.java
new file mode 100644
index 0000000..28f09f2
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeTypeGlobalProcessor.java
@@ -0,0 +1,219 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-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.Assert;
+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.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.INameUpdating;
+import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
+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/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
new file mode 100644
index 0000000..04a75e8
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/util/TextChangeCompatibility.java
@@ -0,0 +1,97 @@
+/*******************************************************************************
+ * 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;
+import org.eclipse.ltk.core.refactoring.TextChange;
+import org.eclipse.text.edits.MultiTextEdit;
+import org.eclipse.text.edits.TextEdit;
+import org.eclipse.text.edits.TextEditGroup;
+
+/**
+ * A utility class to provide compatibility with the old
+ * text change API of adding text edits directly and auto
+ * inserting them into the tree.
+ */
+public class TextChangeCompatibility {
+
+	public static void addTextEdit(TextChange change, String name, TextEdit edit) {
+		Assert.isNotNull(change);
+		Assert.isNotNull(name);
+		Assert.isNotNull(edit);
+		TextEdit root= change.getEdit();
+		if (root == null) {
+			root= new MultiTextEdit();
+			change.setEdit(root);
+		}
+		insert(root, edit);
+		change.addTextEditGroup(new TextEditGroup(name, edit));
+	}
+	
+	public static void addTextEdit(TextChange change, String name, TextEdit[] edits) {
+		Assert.isNotNull(change);
+		Assert.isNotNull(name);
+		Assert.isNotNull(edits);
+		TextEdit root= change.getEdit();
+		if (root == null) {
+			root= new MultiTextEdit();
+			change.setEdit(root);
+		}
+		for (int i= 0; i < edits.length; i++) {
+			insert(root, edits[i]);
+		}
+		change.addTextEditGroup(new TextEditGroup(name, edits));
+	}
+	
+	public static void insert(TextEdit parent, TextEdit edit) {
+		if (!parent.hasChildren()) {
+			parent.addChild(edit);
+			return;
+		}
+		TextEdit[] children= parent.getChildren();
+		// First dive down to find the right parent.
+		for (int i= 0; i < children.length; i++) {
+			TextEdit child= children[i];
+			if (covers(child, edit)) {
+				insert(child, edit);
+				return;
+			}
+		}
+		// We have the right parent. Now check if some of the children have to
+		// be moved under the new edit since it is covering it.
+		for (int i= children.length - 1; i >= 0; i--) {
+			TextEdit child= children[i];
+			if (covers(edit, child)) {
+				parent.removeChild(i);
+				edit.addChild(child);
+			}
+		}
+		parent.addChild(edit);
+	}
+	
+	private static boolean covers(TextEdit thisEdit, TextEdit otherEdit) {
+		if (thisEdit.getLength() == 0)	// an insertion point can't cover anything
+			return false;
+		
+		int thisOffset= thisEdit.getOffset();
+		int thisEnd= thisEdit.getExclusiveEnd();	
+		if (otherEdit.getLength() == 0) {
+			int otherOffset= otherEdit.getOffset();
+			return thisOffset < otherOffset && otherOffset < thisEnd;
+		} else {
+			int otherOffset= otherEdit.getOffset();
+			int otherEnd= otherEdit.getExclusiveEnd();
+			return thisOffset <= otherOffset && otherEnd <= thisEnd;
+		}
+	}		
+	
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RefactorActionGroup.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RefactorActionGroup.java
new file mode 100644
index 0000000..303d1dc
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RefactorActionGroup.java
@@ -0,0 +1,215 @@
+/*******************************************************************************
+ * 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.wizard;
+
+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.actions.RenameAction;
+import org.eclipse.wst.xsd.ui.internal.refactor.actions.SelectionDispatchAction;
+
+/**
+ * Action group that adds refactor actions (for example 'Rename', 'Move') to a
+ * context menu and the global menu bar.
+ * 
+ */
+public abstract class RefactorActionGroup extends ActionGroup {
+	
+	private static class NoActionAvailable extends Action {
+		public NoActionAvailable() {
+			setEnabled(true);
+			setText(RefactoringWizardMessages.RefactorActionGroup_no_refactoring_available); 
+		}
+	}
+
+	/**
+	 * Pop-up menu: name of group for reorganize actions (value
+	 * <code>"group.reorganize"</code>).
+	 */
+	public static final String GROUP_REORGANIZE = IWorkbenchActionConstants.GROUP_REORGANIZE;
+
+	public static final String MENU_ID = "org.eclipse.wst.xsd.ui.refactoring.menu"; //$NON-NLS-1$
+
+	public static final String RENAME = "org.eclipse.wst.xsd.ui.refactoring.actions.Rename"; //$NON-NLS-1$
+
+
+	protected static void initAction(SelectionDispatchAction action,
+			ISelection selection) {
+
+		Assert.isNotNull(selection);
+		Assert.isNotNull(action);
+		action.update(selection);
+		//provider.addSelectionChangedListener(action);
+	}
+
+	protected List fEditorActions;
+
+	private String fGroupName = GROUP_REORGANIZE;
+	
+	private Action fNoActionAvailable = new NoActionAvailable();
+
+	protected RenameAction fRenameAction;
+
+	protected SelectionDispatchAction fRenameTargetNamespace;
+
+	protected ISelection selection;
+	
+	public RefactorActionGroup(ISelection selection) {
+			this.selection = selection;
+			
+	}
+
+	public int addAction(IAction action) {
+		if (action != null && action.isEnabled()) {
+			fEditorActions.add(action);
+			return 1;
+		}
+		return 0;
+	}
+
+	private void addRefactorSubmenu(IMenuManager menu) {
+
+		IMenuManager refactorSubmenu = new MenuManager(RefactoringWizardMessages.RefactorMenu_label, MENU_ID);
+		refactorSubmenu.addMenuListener(new IMenuListener() {
+				public void menuAboutToShow(IMenuManager manager) {
+					refactorMenuShown(manager);
+				}
+			});
+		refactorSubmenu.add(fNoActionAvailable);
+			if (menu.find(refactorSubmenu.getId()) == null) {
+				if (menu.find(fGroupName) == null) {
+					menu.add(refactorSubmenu);
+				} else {
+					menu.appendToGroup(fGroupName, refactorSubmenu);
+				}
+			}
+	}
+
+	protected void disposeAction(ISelectionChangedListener action,
+			ISelectionProvider provider) {
+		if (action != null)
+			provider.removeSelectionChangedListener(action);
+	}
+
+	/*
+	 * (non-Javadoc) Method declared in ActionGroup
+	 */
+	public void fillActionBars(IActionBars actionBars) {
+		super.fillActionBars(actionBars);
+		actionBars.setGlobalActionHandler(RENAME, fRenameAction);
+		retargetFileMenuActions(actionBars);
+	}
+
+	public void fillActions(List enabledActions) {
+		
+		if(selection != null && fEditorActions != null){
+			for (Iterator iter = fEditorActions.iterator(); iter.hasNext();) {
+				Action action = (Action) iter.next();
+				if (action instanceof SelectionDispatchAction) {
+					SelectionDispatchAction selectionAction = (SelectionDispatchAction) action;
+					selectionAction.update(selection);
+				}
+
+			}
+			for (Iterator iter = fEditorActions.iterator(); iter.hasNext();) {
+				Action action = (Action) iter.next();
+				if (action != null && action.isEnabled()) {
+					enabledActions.add(action);
+				}
+			}
+		}
+		
+	}
+
+	/*
+	 * (non-Javadoc) Method declared in ActionGroup
+	 */
+	public void fillContextMenu(IMenuManager menu) {
+		super.fillContextMenu(menu);
+		addRefactorSubmenu(menu);
+	}
+
+	private int fillRefactorMenu(IMenuManager refactorSubmenu) {
+		int added = 0;
+		refactorSubmenu.add(new Separator(GROUP_REORGANIZE));
+		for (Iterator iter = fEditorActions.iterator(); iter.hasNext();) {
+			Action action = (Action) iter.next();
+			if (action != null && action.isEnabled()) {
+				fEditorActions.add(action);
+				return 1;
+			}
+		}
+		return added;
+	}
+
+	private void refactorMenuHidden(IMenuManager manager) {
+
+		for (Iterator iter = fEditorActions.iterator(); iter.hasNext();) {
+			Action action = (Action) iter.next();
+			if (action instanceof SelectionDispatchAction) {
+				SelectionDispatchAction selectionAction = (SelectionDispatchAction) action;
+				selectionAction.update(selection);
+			}
+
+		}
+	}
+
+	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);
+			}
+		});
+
+		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);
+	}
+
+	/**
+	 * 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);
+	}
+
+
+}
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
new file mode 100644
index 0000000..29c5678
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RefactorGroupActionDelegate.java
@@ -0,0 +1,146 @@
+/*******************************************************************************
+ * 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;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+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 RefactorGroupActionDelegate 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; 
+	protected ResourceSet resourceSet = new ResourceSetImpl();
+	
+
+	public RefactorGroupActionDelegate() {
+
+	}
+	
+	/*
+	 * @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/refactor/wizard/RefactorGroupSubMenu.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RefactorGroupSubMenu.java
new file mode 100644
index 0000000..77780e1
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RefactorGroupSubMenu.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * 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;
+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.ui.actions.CompoundContributionItem;
+
+public class RefactorGroupSubMenu extends CompoundContributionItem {
+
+	RefactorActionGroup fRefactorMenuGroup;
+	
+
+	public RefactorGroupSubMenu(RefactorActionGroup refactorMenuGroup) {
+		super();
+		fRefactorMenuGroup = refactorMenuGroup;
+	}
+
+	public RefactorGroupSubMenu(String id) {
+		super(id);
+	}
+
+	protected IContributionItem[] getContributionItems() {
+		  ArrayList actionsList = new ArrayList();
+		  ArrayList contribList = new ArrayList();
+		  fRefactorMenuGroup.fillActions(actionsList);
+	         
+	        if (actionsList != null && !actionsList.isEmpty()) {
+	            for (Iterator iter = actionsList.iterator(); iter.hasNext();) {
+	     			IAction action = (IAction) iter.next();
+	     			contribList.add(new ActionContributionItem(action));
+	     		}
+	        } else {
+	            Action dummyAction = new Action(RefactoringWizardMessages.RefactorActionGroup_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/refactor/wizard/RefactoringWizardMessages.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RefactoringWizardMessages.java
new file mode 100644
index 0000000..03140c8
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RefactoringWizardMessages.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * 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.wizard;
+
+import org.eclipse.osgi.util.NLS;
+
+public class RefactoringWizardMessages  extends NLS {
+
+	private static final String BUNDLE_NAME= "org.eclipse.wst.xsd.ui.internal.refactor.wizard.messages";//$NON-NLS-1$
+
+	public static String RefactorMenu_label;
+	public static String RefactorActionGroup_no_refactoring_available;
+
+	public static String RenameAction_rename;
+	public static String RenameAction_unavailable;
+	public static String RenameAction_text;
+
+	public static String RenameInputWizardPage_new_name;
+	public static String RenameRefactoringWizard_internal_error;
+	
+	public static String RenameTargetNamespace_text;
+
+	public static String RenameXSDElementAction_exception;
+	public static String RenameXSDElementAction_not_available;
+	public static String RenameXSDElementAction_name;
+
+	public static String RenameSupport_dialog_title;
+	public static String RenameSupport_not_available;
+
+	public static String RenameComponentWizard_defaultPageTitle;
+	public static String RenameComponentWizard_inputPage_description;
+
+	public static String RenameInputWizardPage_update_references;
+	public static String XSDComponentRenameChange_name;
+	public static String XSDComponentRenameChange_Renaming;
+	public static String ResourceRenameParticipant_compositeChangeName;
+	public static String RenameResourceChange_rename_resource_reference_change;
+	public static String XSDRenameResourceChange_name;
+	public static String RenameResourceRefactoring_Internal_Error;
+	public static String RenameResourceRefactoring_alread_exists;
+	public static String RenameResourceRefactoring_invalidName;
+	public static String RenameResourceProcessor_name;
+	public static String MakeAnonymousTypeGlobalAction_text; 
+	public static String MakeLocalElementGlobalAction_text;
+	public static String XSDComponentRenameParticipant_Component_Refactoring_updates;
+	public static String WSDLComponentRenameParticipant_Component_Refactoring_updates;
+	public static String RenameComponentProcessor_Component_Refactoring_updates;
+	public static String RenameComponentProcessor_Component_Refactoring_update_declatation;
+	public static String RenameComponentProcessor_Component_Refactoring_update_reference;
+	public static String XSDComponentRenameParticipant_xsd_component_rename_participant;
+	public static String WSDLComponentRenameParticipant_wsdl_component_rename_participant;
+	public static String ResourceRenameParticipant_File_Rename_update_reference;
+
+
+	private RefactoringWizardMessages() {
+		// Do not instantiate
+	}
+
+	static {
+		NLS.initializeMessages(BUNDLE_NAME, RefactoringWizardMessages.class);
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RenameInputWizardPage.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RenameInputWizardPage.java
new file mode 100644
index 0000000..5d4ccd4
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RenameInputWizardPage.java
@@ -0,0 +1,251 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.refactor.wizard;
+
+
+
+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.IReferenceUpdating;
+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);
+		
+		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) {
+
+		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(true);		
+	}
+	
+	protected String getLabelText() {
+		return RefactoringMessages.getString("RenameInputWizardPage.new_name"); //$NON-NLS-1$
+	}
+	
+
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RenameRefactoringWizard.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RenameRefactoringWizard.java
new file mode 100644
index 0000000..8200353
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RenameRefactoringWizard.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.wst.xsd.ui.internal.refactor.wizard;
+
+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;
+import org.eclipse.wst.xsd.ui.internal.refactor.INameUpdating;
+
+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-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/messages.properties b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/messages.properties
new file mode 100644
index 0000000..7bcd71f
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/messages.properties
@@ -0,0 +1,55 @@
+###############################################################################
+# 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
+###############################################################################
+
+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 in {0}: {1} to {2}
+XSDComponentRenameChange_Renaming=Renaming...
+ResourceRenameParticipant_compositeChangeName=XSD file rename references updating changes
+RenameResourceChange_rename_resource_reference_change=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
+MakeAnonymousTypeGlobalAction_text=Make Anonymous Type Global 
+MakeLocalElementGlobalAction_text=Make Local Element Global
+XSDComponentRenameParticipant_Component_Refactoring_updates=XML Schema refactoring changes
+WSDLComponentRenameParticipant_Component_Refactoring_updates=WSDL Schema refactoring changes
+RenameComponentProcessor_Component_Refactoring_updates=Component name refactoring changes
+RenameComponentProcessor_Component_Refactoring_update_declatation=Update component declaration/definition
+RenameComponentProcessor_Component_Refactoring_update_reference=Update component reference
+XSDComponentRenameParticipant_xsd_component_rename_participant=XSD component rename participant
+WSDLComponentRenameParticipant_wsdl_component_rename_participant=WSDL component rename participant
+ResourceRenameParticipant_File_Rename_update_reference=File rename refactoring changes
+
+RenameTargetNamespace_text=Rename Target Namespace
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
new file mode 100644
index 0000000..817f390
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/ValidateAction.java
@@ -0,0 +1,151 @@
+/*******************************************************************************
+ * 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.InputStream;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IWorkspaceRunnable;
+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.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.editor.XSDEditorPlugin;
+
+
+
+/**
+ * This class manages the 'UI' related details of validation. Here's a quick
+ * overview of the details : 
+ * - manages Marker creation based on the results of the validation 
+ * - (optionally) displays dialog to summarize the results of validation 
+ * 
+ * @author Lawrence Mandel, IBM
+ * @author Keith Chong, IBM
+ */
+public class ValidateAction extends org.eclipse.wst.xml.ui.internal.validation.core.ValidateAction
+{ 
+  // Property file strings.
+  private static final String _UI_DIALOG_XML_SCHEMA_INVALID_TEXT = "_UI_DIALOG_XML_SCHEMA_INVALID_TEXT";
+  private static final String _UI_DIALOG_XML_SCHEMA_INVALID_TITLE = "_UI_DIALOG_XML_SCHEMA_INVALID_TITLE";
+  private static final String _UI_DIALOG_XML_SCHEMA_VALID_TITLE = "_UI_DIALOG_XML_SCHEMA_VALID_TITLE";
+  private static final String _UI_DIALOG_XML_SCHEMA_VALID_TEXT = "_UI_DIALOG_XML_SCHEMA_VALID_TEXT";
+  private static final String _UI_DIALOG_XML_SCHEMA_VALID_WITH_WARNINGS = "_UI_DIALOG_XML_SCHEMA_VALID_WITH_WARNINGS";
+
+  private InputStream inputStream;
+  
+  /**
+   * Constructor.
+   * 
+   * @param file The file to validate.
+   * @param showDialog Whether or not to show a dialog when validation is complete.
+   */
+  public ValidateAction(IFile file, boolean showDialog)
+  {
+    super(file, showDialog);
+  }
+  
+  /*
+   * Store additional information in the message parameters
+   * param[0] = the column number of the error
+   * param[1] = the 'squiggle selection strategy' for which DOM part to squiggle
+   * param[2] = the name or value of what is to be squiggled
+   */
+  protected void addInfoToMessage (ValidationMessage validationMessage, IMessage message)
+  {   
+    if (inputStream != null)
+    {
+      XSDMessageInfoHelper messageInfoHelper = new XSDMessageInfoHelper();
+	  String[] messageInfo = messageInfoHelper.createMessageInfo(validationMessage.getMessage(), validationMessage.getKey());
+
+	  message.setAttribute(COLUMN_NUMBER_ATTRIBUTE, new Integer(validationMessage.getColumnNumber()));
+	  message.setAttribute(SQUIGGLE_SELECTION_STRATEGY_ATTRIBUTE, messageInfo[0]);
+	  message.setAttribute(SQUIGGLE_NAME_OR_VALUE_ATTRIBUTE, messageInfo[1]);
+    }  
+  }
+  
+  protected void validate(final IFile file)
+  {
+    final ValidationOutcome valoutcome = new ValidationOutcome();
+    IPath path = file.getLocation();
+    final String uri = createURIForFilePath(path.toString());
+    
+    IWorkspaceRunnable op = new IWorkspaceRunnable()
+    {
+
+      public void run(IProgressMonitor progressMonitor) throws CoreException
+      {
+        clearMarkers(file);
+        XSDValidator validator = XSDValidator.getInstance();
+        ValidationReport valreport = validator.validate(uri, inputStream);
+        valoutcome.isValid = valreport.isValid();
+        if(valreport.getValidationMessages().length == 0)
+        {
+          valoutcome.hasMessages = false;
+        }
+        else
+        {
+          valoutcome.hasMessages = true;
+        }
+        createMarkers(file, valreport.getValidationMessages());
+
+        file.setSessionProperty(ValidationMessage.ERROR_MESSAGE_MAP_QUALIFIED_NAME, valreport.getNestedMessages());
+      }
+    };
+
+    try
+    {
+      ResourcesPlugin.getWorkspace().run(op, null);
+      String internalErrorMessage = null;
+
+      if (showDialog)
+      {
+        if (!valoutcome.isValid)
+        {
+          String message = XSDEditorPlugin.getXSDString(_UI_DIALOG_XML_SCHEMA_INVALID_TEXT);
+          String title = XSDEditorPlugin.getXSDString(_UI_DIALOG_XML_SCHEMA_INVALID_TITLE);
+          if (internalErrorMessage != null)
+          {
+            message = message + "\n" + internalErrorMessage;
+          }
+          openErrorDialog(title, message);
+        } 
+        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);
+          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 = validator.isGrammarEncountered() ?
+          //                 XSDValidatorManager.getString("_UI_THE_XML_FILE_IS_VALID") :
+          //                XSDValidatorManager.getString("_UI_THE_XML_FILE_IS_WELL_FORMED") +
+          //                 XSDValidatorManager.getString("_UI_NO_GRAMMAR_WARNING");
+          openValidDialog(title, message);
+        }
+      }
+    } 
+
+	catch (CoreException e)
+    {
+    }
+  }
+  public void setInputStream(InputStream inputStream)
+  { this.inputStream = inputStream;
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/ValidateSchemaActionDelegate.java b/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/ValidateSchemaActionDelegate.java
new file mode 100644
index 0000000..5dce0fe
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/ValidateSchemaActionDelegate.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * 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 org.eclipse.core.resources.IFile;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IActionDelegate;
+
+/**
+ * Validate schema - from popup
+ */
+public class ValidateSchemaActionDelegate
+       implements IActionDelegate
+{
+  protected ISelection selection;
+
+  public void run(IAction action)
+  {
+  	try {
+  		// CS.. for now the following line tests to ensure the user has xerces jars installed
+        // so that we can perform some 'fail fast' behaviour
+        //
+        Class theClass = Class.forName("org.apache.xerces.xni.parser.XMLParserConfiguration", true, this.getClass().getClassLoader());
+        if (theClass == null)
+        {
+         throw(new Exception("Missing Xerces jars in plugin's 'jars' folder"));       
+        }
+
+	    IFile fileResource = null;
+	    if (!selection.isEmpty() && selection instanceof IStructuredSelection)
+	    {
+	      IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+	      Object element = structuredSelection.getFirstElement();
+	
+	      if (element instanceof IFile)
+	      {
+	        fileResource = (IFile) element;
+	      }
+	      else
+	      {
+	        return;
+	      }
+	    }
+	    ValidateAction validateaction = new ValidateAction(fileResource, true);
+	    validateaction.setValidator(new Validator());
+	    validateaction.run();
+  	}
+  	catch (Exception e) {
+        // CS..here's where we need to pop up a dialog to tell the user that xerces is not available
+        //
+        String xercesLine1 = "Required files xercesImpl.jar and xmlParserAPIs.jar cannot be found.\n\n";
+        String xercesLine2 = "Download Xerces 2.6.2 and place xercesImpl.jar and xmlParserAPIs.jar in a folder entitled jars in the org.eclipse.wst.xml.validation plugin.\n\n";
+        String xercesLine3 = "For more information see www.eclipse.org/webtools/wst/components/xml/xercesInfo.xml.";
+        MessageDialog.openError(Display.getDefault().getActiveShell(), "Missing Xerces", xercesLine1 + xercesLine2 + xercesLine3);
+  	}
+  }
+
+  public void selectionChanged(IAction action, ISelection selection)
+  {
+    this.selection = selection;
+  }
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/Validator.java b/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/Validator.java
new file mode 100644
index 0000000..b14ec14
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/Validator.java
@@ -0,0 +1,172 @@
+/*******************************************************************************
+ * 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.InputStream;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.wst.validation.internal.core.ValidationException;
+import org.eclipse.wst.validation.internal.operations.IRuleGroup;
+import org.eclipse.wst.validation.internal.operations.ValidatorManager;
+import org.eclipse.wst.validation.internal.provisional.core.IReporter;
+import org.eclipse.wst.validation.internal.provisional.core.IValidationContext;
+import org.eclipse.wst.validation.internal.provisional.core.IValidator;
+
+
+public class Validator implements IValidator
+{
+  private final String GET_FILE = "getFile";
+  public final String GET_PROJECT_FILES = "getAllFiles";
+
+  public void validate(IFile file)
+  {
+    ValidateAction validateAction = new ValidateAction(file, false);
+    validateAction.setValidator(this);
+    validateAction.run();	
+  }
+  /**
+   * This is the method which performs the validation on the MOF model.
+   * <br><br>
+   * <code>helper</code> and <code>reporter</code> may not be null. <code>changedFiles</code> may be null, if a full
+   * build is desired.
+   * <br><br>
+   * <code>helper</code> returns the ifile for the given information in the IFileDelta array
+   * <br><br>
+   * <code>reporter</code> is an instance of an IReporter interface, which is used for interaction with the user.
+   * <br><br>
+   * <code>changedFiles</code> is an array of file names which have changed since the last validation. 
+   * If <code>changedFiles</code> is null, or if it is an empty array, then a full build
+   * is performed. Otherwise, validation on just the files listed in the Vector is performed.
+   */
+  public void validate(IValidationContext helper, IReporter reporter) throws ValidationException {
+	 String[] changedFiles = helper.getURIs();
+     if (changedFiles != null && changedFiles.length > 0) 
+    {
+      for (int i = 0; i < changedFiles.length; i++) 
+      {
+        String fileName = changedFiles[i];
+        if (fileName != null)
+        {
+          Object []parms = {fileName};
+
+          IFile file = (IFile) helper.loadModel(GET_FILE, parms);
+          if (file != null && shouldValidate(file)) 
+          {            
+            //the helper might not have the file stored in it. could have an InputStream          
+            if (helper.loadModel("inputStream") instanceof InputStream)
+            {
+              validate(file, (InputStream)helper.loadModel("inputStream"), reporter); //do we need the fileName?  what is int ruleGroup?
+            }                    
+            else
+            {  
+              //if (((Helper)helper).isInJavaBuildPath(file) &&
+              //    !((AWorkbenchHelper)helper).isInJavaSourcePath(file))
+              //{
+              //  continue;
+              //}
+              validateIfNeeded(file, helper, reporter);
+            }
+          }
+        }
+      }
+    }
+    else 
+    {
+      Object []parms = {this.getClass().getName()};
+      Collection files = (Collection) helper.loadModel(GET_PROJECT_FILES, parms);
+      Iterator iter = files.iterator();
+      while (iter.hasNext()) 
+      {
+        IFile file = (IFile) iter.next();
+        if(shouldValidate(file))
+        {
+          validateIfNeeded(file, helper, reporter);
+        }
+      }
+    }
+  }
+  
+ 
+  private void validate(IFile file, InputStream inputStream, IReporter reporter)
+  {  
+    ValidateAction validateAction = new ValidateAction(file, false);
+    validateAction.setValidator(this);
+    if (inputStream != null)
+    {
+      validateAction.setInputStream(inputStream);
+      validateAction.setReporter(reporter);
+    }
+    validateAction.run();    
+  }
+  
+  protected void validateIfNeeded(IFile file, IValidationContext helper, IReporter reporter)
+  {
+    ValidatorManager mgr = ValidatorManager.getManager();
+ 
+    Integer ruleGroupInt = (Integer)helper.loadModel(IRuleGroup.PASS_LEVEL, null); // pass in a "null" so that loadModel doesn't attempt to cast the result into a RefObject
+    int ruleGroup = (ruleGroupInt == null) ? IRuleGroup.PASS_FULL : ruleGroupInt.intValue();
+
+    Object stream = helper.loadModel("inputStream");
+    if (stream instanceof InputStream)
+    {
+      validate(file, (InputStream)stream, reporter);      
+    } 
+    else
+    {  
+      validate(file, null, reporter);
+    }  
+  }
+  
+  /**
+   * Unpacks the fileModelPair and returns an IFile object.
+   */
+  //protected IFile getFile(Object object)
+  //{
+  //  IFile result = null;
+  //  if (object instanceof List)
+  //  {
+  //    List fileModelPair = (List)object;
+  //    if (fileModelPair.size()>0)
+  //    {
+  //      Object file = fileModelPair.get(0);
+  //      if (file instanceof IFile)
+  //      {
+  ///        result = (IFile)file;
+  //      }
+  //    }
+  //  }
+  //  return result;
+ // } 
+  
+  /* (non-Javadoc)
+   * @see org.eclipse.wtp.validation.core.IValidator#cleanup(org.eclipse.wtp.validation.core.IReporter)
+   */
+  public void cleanup(IReporter reporter)
+  {
+  }
+
+  boolean shouldValidate(IFile file) {
+    IResource resource = file;
+    do {
+      if (resource.isDerived() || resource.isTeamPrivateMember() || !resource.isAccessible() || resource.getName().charAt(0) == '.') {
+        return false;
+      }
+      resource = resource.getParent();
+    }
+	while ((resource.getType() & IResource.PROJECT) == 0 && (resource.getType() & IResource.ROOT) == 0);
+	return true;
+  }
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/XSDMessageInfoHelper.java b/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/XSDMessageInfoHelper.java
new file mode 100644
index 0000000..3c7307a
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/XSDMessageInfoHelper.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * 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;
+
+
+/**
+ * @author Mark Hutchinson
+ * 
+ * The XSDMessageInfoHelper creates a string with the
+ */
+public class XSDMessageInfoHelper
+{
+  public XSDMessageInfoHelper()
+  { super();
+  }
+
+  public String[] createMessageInfo(String errorMessage, String errorKey)
+  { 
+    //Now map the error key to what we would want to underline:
+    String nameOrValue = "";
+    String selectionStrategy = "";
+    if (errorKey.equals("s4s-elt-invalid-content.1") || errorKey.equals("s4s-elt-must-match.1") || errorKey.equals("s4s-att-must-appear") || errorKey.equals("s4s-elt-invalid-content.2"))
+    { selectionStrategy = "START_TAG";
+    }
+    else if (errorKey.equals("s4s-att-not-allowed"))
+    { selectionStrategy = "ATTRIBUTE_NAME";
+      nameOrValue = getFirstStringBetweenSingleQuotes(errorMessage);
+    }
+    else if (errorKey.equals("s4s-att-invalid-value"))
+    { selectionStrategy = "ATTRIBUTE_VALUE";
+      nameOrValue = getFirstStringBetweenSingleQuotes(errorMessage);
+    }
+    else if (errorKey.equals("s4s-elt-character"))
+    { selectionStrategy = "TEXT";
+    }
+    else if (errorKey.equals("src-resolve.4.2") || errorKey.equals("src-resolve"))
+    { selectionStrategy = "VALUE_OF_ATTRIBUTE_WITH_GIVEN_VALUE";
+      nameOrValue = getFirstStringBetweenSingleQuotes(errorMessage);
+    }
+    String messageInfo[] = new String[2];
+    messageInfo[0] = selectionStrategy;
+    messageInfo[1] = nameOrValue;
+    return messageInfo;    
+  }
+
+  /*
+   * Mark Hutchinson
+   * 
+   * This method is used to get the value between the first pair of single quotes
+   * It is used to extract information from the error Message (for example
+   * an attribute name)
+   */
+  private String getFirstStringBetweenSingleQuotes(String s)
+  {
+    int first = s.indexOf("'");
+    int second = s.indexOf("'", first + 1);
+    String betweenQuotes = null;
+    if (first != -1 && second != -1)
+    { betweenQuotes = s.substring(first + 1, second);
+    }
+    return betweenQuotes;
+  }
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/XSDValidator.java b/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/XSDValidator.java
new file mode 100644
index 0000000..899f21d
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/XSDValidator.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.validation;
+
+import java.io.InputStream;
+
+import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
+import org.eclipse.wst.xml.core.internal.validation.core.ValidationReport;
+
+
+/**
+ * An XSD validator specific to Eclipse. This validator will wrap the internal
+ * XSD validator an provide automatic URI resolver support.
+ * Using this class is equivalent to using the internal XSD validator and registering
+ * the URI resolver.
+ */
+public class XSDValidator
+{
+  private static XSDValidator instance = null;
+  private org.eclipse.wst.xsd.core.internal.validation.XSDValidator validator = null;
+  
+  /**
+   * Return the one and only instance of the XSD validator. The validator
+   * can be reused and cannot be customized so there should only be one instance of it.
+   * 
+   * @return The one and only instance of the XSD validator.
+   */
+  public static XSDValidator getInstance()
+  {
+    if(instance == null)
+    {
+      instance = new XSDValidator();
+    }
+    return instance;
+  }
+  /**
+   * Constructor. Create the XSD validator and set the URI resolver.
+   */
+  protected XSDValidator()
+  {
+    validator = new org.eclipse.wst.xsd.core.internal.validation.XSDValidator();
+    validator.setURIResolver(URIResolverPlugin.createResolver());
+  }
+  /**
+   * Validate the file at the given URI.
+   * 
+   * @param uri The URI of the file to validate.
+   */
+  /*public ValidationReport validate(String uri)
+  {
+    return validator.validate(uri);
+  }*/
+  public ValidationReport validate(String uri, InputStream inputStream)
+  {
+    return validator.validate(uri, inputStream);
+  }
+}